【问题标题】:Django admin error ValidationError: [u'ManagementForm data is missing or has been tampered with']Django 管理错误 ValidationError: [u'ManagementForm 数据丢失或已被篡改']
【发布时间】:2016-05-27 07:13:28
【问题描述】:

您好,我正在使用动态内联创建模型管理员。

class InlineProfile(admin.TabularInline):
    model = Profile
#     max_num = 1

class InlineProfileOne(admin.TabularInline):
    model = TableOne
#     max_num = 1

class InlineProfileTwo(admin.TabularInline):
    model = TableTwo
#     max_num = 1

class UserDisplay(admin.ModelAdmin):
    inlines = [InlineProfile]

    def get_inline_instances(self, request, obj=None):
        up=UserProfile.objects.get(pk=obj.id)
        if (up.job_type.job_type==1):
            self.inlines.append(InlineProfileOne)
        elif (up.job_type.job_type==2):
            self.inlines.append(InlineProfileTwo)
        return obj and super(UserDisplay, self).get_inline_instances(request, obj) or []

#     def get_formsets(self, request, obj):
#         print obj
#         for inline in self.get_inline_instances(request, obj):
#             yield inline.get_formset(request, obj)

    list_display = [f.name for f in LCUser._meta.fields]
    field_set = list(list_display)
    field_set.remove('id')
    field_set.remove('api_key')
    field_set.remove('api_secret')

    readonly_fields=['last_login_ip','last_login_timestamp','created_at','updated_at']

    fieldsets = (
        (None, {
            'fields': field_set,

        }),
        ('Advanced options', {
            'classes': ('collapse',),
            'fields': ('api_key', 'api_secret'),
        }),
    )

    search_fields=list_display
    list_filter=['user_type','profile_complete']
    list_editable=list(list_display)
    list_editable.remove('id')
    list_editable.remove('updated_at')
    list_editable.remove('created_at')
    list_editable.remove('last_login_timestamp')
    list_editable.remove('last_login_ip')

    class Meta:
        model = LCUser

在显示时,我有时会看到两个内联行而不是一个,当我尝试更新它时,我得到“ManagementForm 数据丢失或已被篡改”

【问题讨论】:

标签: django django-admin


【解决方案1】:

弄清楚我做错了什么。看起来我忘了初始化 inlinse 变量。因此,每次我单击一个对象时,它都会再次添加相同的内联模型,这在我尝试保存它时会导致错误。

【讨论】:

  • 答案不是很清楚。在导致和解决问题的步骤上添加更多详细信息将是非常周到的。
  • 答案不明确,至少需要代码比较
猜你喜欢
  • 2014-12-28
  • 2016-02-08
  • 2016-06-24
  • 2015-05-27
  • 1970-01-01
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多