Django editable = False并仍显示在fieldsets中?

jas*_*son 7 django django-admin

我的models.py中有一个图像字段...

 qr_image = models.ImageField(
        upload_to="public/uploads/",
        height_field="qr_image_height",
        width_field="qr_image_width",
        null=True,
        blank=True,
        editable=False
    )
Run Code Online (Sandbox Code Playgroud)

editable=False我尝试显示它时,我遇到了一个令人讨厌的错误.我不想领域可编辑的,但是我要在图像中管理员显示" 编辑页面即字段集

我是Django的新手,有人可以告诉我这是否可行,并指出我在这里正确的方向?

谢谢.

gre*_*rez 11

如果您有这样的ModelAdmin:

class MyModelAdmin(admin.ModelAdmin):

    fieldsets = [
        ('Fieldset', {'fields': ['model_field', 'another_field', 'readonly_field']}),
    ]
Run Code Online (Sandbox Code Playgroud)

其中readonly_fieldeditable=False或者如果它是一个DateTimeField字段auto_now_add=True,然后访问管理页面为你的模型将导致错误未找到现场.

要在字段集中包含只读字段,请包括readonly_fields以下内容:

class MyModelAdmin(admin.ModelAdmin):

    fieldsets = [
        ('Fieldset', {'fields': ['model_field', 'another_field', 'readonly_field']}),
    ]
    readonly_fields = ('readonly_field',)
Run Code Online (Sandbox Code Playgroud)


Bra*_*don 7

实现此目的的一个简单方法是在 ModelAdmin 中将该字段设置为只读:https ://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields