Проблемы с администратором Django

#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 эту проблему для меня сразу исчезает.