嗨,我对Django很新,并且期待我遗漏一些简单的东西,所以请耐心等待。
尝试在管理页面上保存数据时遇到500错误。
我们在此页面上使用了grapelli-nested-inlines(https://github.com/datahub/grappelli-nested-inlines)。
当我将文本更改为TextField时,我收到此错误:
AttributeError at /_admin/...
'InlineAdminFormSet' object has no attribute 'has_changed'
Request Method: POST
Request URL: http://localhost:8000/_admin/...
Django Version: 1.7.4
Exception Type: AttributeError
Exception Value:
'InlineAdminFormSet' object has no attribute 'has_changed'
Exception Location: venv/lib/python3.4/site-packages/grappelli_nested/forms.py in <genexpr>, line 36
Python Executable: venv/bin/python
Python Version: 3.4.3
Python Path:
['venv/lib/python34.zip',
'venv/lib/python3.4',
'venv/lib/python3.4/plat-darwin',
'venv/lib/python3.4/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4',
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin',
'venv/lib/python3.4/site-packages']
Server time: Thu, 13 Aug 2015 15:24:08 +0000
InlineAdminFormSet在https://github.com/django/django/blob/master/django/contrib/admin/helpers.py中定义为AdminForm。
基于Django文档,我希望所有表单都定义了has_changed方法,但是这个方法似乎没有。
我没有看到其他人引用这个问题,所以这让我相信我错过了什么。
有人可以为我澄清一下:
AdminForm是否应该使用has_changed方法(如果是这样,我该如何推进?)
如果不是,我应该在葡萄园的叉子里处理这个问题吗?
还是有其他解决方案我不知道。
干杯
答案 0 :(得分:1)
AdminForm
和InlineAdminFormSet
是未记录的内部文件。它们不会从forms.Form
继承,因此它们没有has_changed
方法。
您可以尝试为grappelli-nested-inlines打开一个问题,或者深入了解内幕并尝试弄明白。