2013-02-21 52 views
2

我有一個像場在我的models.py ...Django editable = False仍然顯示在字段集中?

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,可有人告訴我,如果這是可能的點我在這裏正確的方向?

謝謝。

回答

5

如果你有一個這樣的的ModelAdmin:

class MyModelAdmin(admin.ModelAdmin): 

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

其中readonly_fieldeditable=False或者如果它是一個包含auto_now_add=True的DateTimeField,然後訪問您的模型的管理頁面將導致找不到字段錯誤。

爲了在你的fieldsets只讀領域,包括readonly_fields這樣的:

class MyModelAdmin(admin.ModelAdmin): 

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

是的! 'readonly_field'應該在'readonly_fields'中,或者'raise'不能爲用戶模型表單指定,因爲它是一個不可編輯的字段。檢查字段/字段集/排除屬性錯誤 – WeizhongTu 2016-10-12 04:15:54

+0

如果'readonly_fields'中只有一個字段,則需要在元組末尾添加一個逗號:'('readonly_field',)'以避免出現錯誤:'TypeError:can僅將元組(不是「str」)連接到元組 – guival 2018-01-05 12:52:53

相關問題