通过Django Admin编辑模型字段时,出现[u'ManagementForm data is missing or has been tampered with']
验证错误。
脚步:
通过Django Admin编辑模型并插入特殊字符
(é,ñ)
数据保存确定。
再次编辑模型字段时
(charField)不管输入什么,都会引发验证错误。
当不使用特殊字符进行编辑时,该表格可以正常工作。
编辑
保存特殊字符时,该模型的内联不会出现在编辑部分中,因此在这种情况下验证错误是正确的。
相关代码:
class StreamInline(admin.TabularInline):
model = Stream
form = StreamForm
extra = 0
#define order
fields = ('name', 'canal', 'tipo', 'stream_type',
'unit', 'formula', 'label', 'color',
('min_scale', 'max_scale', 'fixed_scale'), 'enabled')
readonly_fields = ['name', 'stream_type']
can_delete = False
class Media:
js = ('js/jquery-1.7.2.min.js', 'js/jscolor.min.js',)
class NodeAdmin(admin.ModelAdmin):
search_fields = ['name', ]
fields = (('identifier', 'name', 'node_type'), ('group','cultivation') , ('longitude', 'latitude','operator','sim_card','telephone'), 'config', ('enabled', 'deleted'),('date_node','date_bat','reference_irrig_date'),'notes')
list_display = ['identifier', 'name', 'group', 'sim_card']
list_filter = ('group__name',)
#form = NodeForm
#list_filter = ['deleted', 'enabled', 'node_type']
inlines = [StreamInline]
Django版本:1.4.21
Python版本:2.7.9
最佳答案
错误:[u'ManagementForm data is missing or has been tampered with']
是因为没有出现内联,所以MAX_TOTAL_FORMS和其他的不一致。
由于模型中的__unicode__
函数存在错误,因此未显示内联。
在__unicode__
函数中返回unicode类型(python 2)解决了该问题。
关于python - 仅在特殊情况下,ValidationError [u'ManagementForm数据丢失或已被篡改'],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43923096/