Python 如何在django admin中编辑editable=False字段?

Python 如何在django admin中编辑editable=False字段?,python,django,django-models,django-forms,django-admin,Python,Django,Django Models,Django Forms,Django Admin,我有一些字段不需要向用户显示,但需要管理员在“管理”面板中进行编辑。Manoj Govindan提供的解决方案仅在admin中显示字段,但在admin中保存并返回表单后,字段将再次取消设置。我正在使用django 1.6.5 我的模特 class Profile(models.Model): user = models.OneToOneField(User) picture1 = ImageWithThumbsField(_("Photo1"), upload_to="phot

我有一些字段不需要向用户显示,但需要管理员在“管理”面板中进行编辑。Manoj Govindan提供的解决方案仅在admin中显示字段,但在admin中保存并返回表单后,字段将再次取消设置。我正在使用django 1.6.5

我的模特

class Profile(models.Model):
    user = models.OneToOneField(User)

    picture1 = ImageWithThumbsField(_("Photo1"), upload_to="photos", null=True,
        blank=True, sizes=((150, 225),))
    picture1_confirm = models.NullBooleanField(null=True, editable=False)

    picture2 = ImageWithThumbsField(_("Photo2"), upload_to="photos", null=True,
        blank=True, sizes=((150, 225),))
    picture2_confirm = models.NullBooleanField(null=True, editable=False)

    picture3 = ImageWithThumbsField(_("Photo3"), upload_to="photos", null=True,
        blank=True, sizes=((150, 225),))
    picture3_confirm = models.NullBooleanField(null=True, editable=False)
和admin.py

class CustomProfileForm(forms.ModelForm):
    picture1_confirm = forms.BooleanField(required=False)
    picture2_confirm = forms.BooleanField(required=False)
    picture3_confirm = forms.BooleanField(required=False)

    class Meta:
        model = Profile
        fields = ('picture1', 'picture1_confirm', 'picture2', 'picture2_confirm',
            'picture3', 'picture3_confirm',)

class ProfileAdmin(admin.ModelAdmin):
    form = CustomProfileForm

admin.site.register(Profile, ProfileAdmin)

因此,您希望该字段在应用程序中可编辑,但不希望用户看到它?如果是这样的话,你就错了。如果需要编辑它们,则不应将其设置为可编辑=False。。。您应该使用另一种方法,例如不包含字段的自定义表单来显示用户。为什么在django 1.2.3上可以这样做?为什么我的方式没有抛出任何异常呢?代码没有问题,你只是试图将某些内容设置为不可编辑,然后通过强制它出现在管理页面上来编辑它。至于版本,我认为1.5版可能会使表单更加严格,出于安全原因,您必须指定要在表单中显示哪些字段,以便用户只看到他们应该看到的内容。