#python #django
#питон #джанго
Вопрос:
У меня есть следующая трассировка стека при попытке получить доступ к приложению django admin по умолчанию. Кто-нибудь знает, как это исправить? Я date_created
четко определил поле в своем models.py для приложения «Каталог». Я не уверен, где еще мне нужно это определить?
ImproperlyConfigured at /admin
'ProductAdmin.exclude' refers to field 'date_created' that is missing from the form.
Request Method: GET
Request URL: http://localhost:8000/admin
Django Version: 1.3.1
Exception Type: ImproperlyConfigured
Exception Value:
'ProductAdmin.exclude' refers to field 'date_created' that is missing from the form.
Exception Location: /Library/Python/2.6/site-packages/django/contrib/admin/validation.py in check_formfield, line 362
Python Executable: /usr/bin/python
Python Version: 2.6.1
Python Path:
['/Users/christopherfarm/Desktop/ecomstore',
'/Library/Python/2.6/site-packages/python_dateutil-1.5-py2.6.egg',
'/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg',
'/Library/Python/2.6/site-packages/django_db_log-2.2.1-py2.6.egg',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages',
'/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old',
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload',
'/Library/Python/2.6/site-packages',
'/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC',
'/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode']
Server time: Mon, 31 Oct 2011 16:02:11 -0500
Ответ №1:
Я предполагаю, что вы установили auto_now_add
or auto_add
в своем models.py
поле, поэтому в первую очередь это не часть вашей формы для исключения.
Попробуйте удалить его из своего оператора exclude.
Комментарии:
1. да, у меня это есть. Что именно он делает и почему выдает ошибку?
2. Потому что вы пытаетесь исключить поле, которое не является частью вашей формы администратора. По умолчанию определенные поля не добавляются в modelform. Вы не можете исключить то, чего там нет 😉 Если вы хотите его увидеть, добавьте его в
readonly_fields
3. но что меня смущает, так это то, что это четко определено в models.py , тогда почему он не может быть использован в admin.py после того, как я импортирую классы?
4. Как я уже сказал, по умолчанию некоторые поля не добавляются автоматически в форму администратора. Если для поля задано добавление метки времени при создании, оно не предназначено для изменения. Если вы хотите видеть их в форме администратора, используйте
readonly_fields
. Если вы хотите их отредактировать, переопределите форму администратора и явно добавьте поле в свойforms.Form
Ответ №2:
Вы внесли изменения после первоначального syncdb
? Если это так, вам нужно выполнить a reset
в рассматриваемом приложении, чтобы таблицы были удалены, созданы заново и (если у вас есть приспособления) перезагружены.
Кроме того, вы можете зайти в dbshell
for своего приложения и самостоятельно изменить таблицу, используя SQL.
Ответ №3:
У меня та же самая ошибка. Я вернулся к проекту, которым некоторое время не занимался. И я запускаю его с django==1.5
помощью instead django==1.6
, а не с тем, над которым он работал.
итак, подводя итог, в моем случае это было связано с версией django 1.5
, когда я получил ошибку типа: ExhibitorAdmin.exclude' refers to field 'collectedcontact' that is missing from the form.
в то время как при переключении на django==1.6
эту проблему для меня сразу исчезает.