Обратите внимание, что в сообщении об ошибке явно упоминается пустое значение pk . IOW: сначала нужно сохранить экземпляр модели, поля серийного (автоматического) идентификатора получают свои значения только тогда, когда запись вставлена в таблицу.
dev_appserver является просто сценарием Python, можно просто использовать pydev отладчик на том сценарии с надлежащими аргументами насколько я знаю.
Вот очень подробное руководство о том, как сделать это:
http://www.ibm.com/developerworks/opensource/library/os-eclipse-mashup-google-pt1/index.html
Я предложил бы использовать регистрирующиеся операторы вместо печати хотя, поскольку можно управлять ими лучше. Python имеет довольно хорошую включенную библиотеку входа.
Для входа от Google App Engine до, например, Firebug там также некоторый удобный инструмент под названием FirePython. Это позволяет регистрироваться к консоли поджигателя из Вашего Django или приложения WSGI (это - промежуточное программное обеспечение).
"Есть ли лучшая техника для контакта с этим?" Едва ли.
"неродной через отладчики" их собственная проблема. Они - своего рода умственная опора, которые помогают получить что-то, что похоже на нее работы.
Во-первых, взгляд на http://code.google.com/appengine/docs/python/tools/devserver.html#The_Development_Console для чего-то, что могло бы быть полезно.
Во-вторых, отметьте это --debug
Печатает подробные сообщения отладки к консоли при выполнении.
Наконец, обратите внимание необходимость в большом количестве опыта Python и опыта Google AppEngine записать вещи как веб-приложения. Получить тот опыт, print
оператор действительно довольно хорош. Это показывает Вам, что продолжается, и это поощряет Вас действительно понимать то, что Вы ожидаете или намереваетесь произойти.
Отладчики пассивны. Это передает к написанию случайного кода, видя то, что происходит, внося изменения, пока это не работает. Я наблюдал, что люди делают это.
Оператор печати активен. Необходимо запланировать то, что должно произойти, написать код и полагать, что результаты тщательно видят если разработанные планы. Если это не делает то, что Вы предназначили, необходимо выдвинуть гипотезу и протестировать гипотезу. Если это работает, то Вы "поняли" то, что продолжалось. После того как Вы получаете семантику Python и Google AppEngine, Ваше понимание растет, и это становится действительно легким.
Моя отладка панели инструментов для GAE:
print
операторыpython manage.py shell
но все еще...)Символьные отладчики не так оценены как в другом месте, возможно потому что превосходящий самоанализ Python и отражательные механизмы.