7

我的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
    )

当它editable=False尝试显示它时,我得到一个令人讨厌的错误。我不希望该字段可编辑,但我确实希望图像显示在管理员“编辑”页面中,即字段集

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

谢谢你。

4

2 回答 2

19

如果您有这样的 ModelAdmin:

class MyModelAdmin(admin.ModelAdmin):

    fieldsets = [
        ('Fieldset', {'fields': ['model_field', 'another_field', 'readonly_field']}),
    ]

where readonly_fieldhas editable=Falseor if it is a DateTimeFieldauto_now_add=True然后访问模型的管理页面将导致找不到字段错误。

要在您的字段集中包含一个只读字段,请readonly_fields像这样包含:

class MyModelAdmin(admin.ModelAdmin):

    fieldsets = [
        ('Fieldset', {'fields': ['model_field', 'another_field', 'readonly_field']}),
    ]
    readonly_fields = ('readonly_field',)
于 2016-05-10T19:19:19.707 回答
5

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

于 2013-02-21T16:20:12.583 回答