[英]Django Admin, missing id readonly field in StackedInline
我有一個StackedInline模型,其中包含多個字段(包括“ id”字段):
class MyInline(admin.StackedInline):
model= myModel
fields = ('id', 'foo', 'bar')
這將3個可編輯字段設置為預期狀態,但是,將其設置為readonly
:
class MyInline(admin.StackedInline):
model= myModel
fields = ('id', 'foo', 'bar')
readonly_fields= ('id','foo','bar')
id字段丟失,只有foo
和bar
出現(不可編輯)。
與TabularInline
一起使用StackedInline
,會發生此行為
為什么ID丟失,如何將其添加為只讀字段?
首先,檢查MyModel
模型是否具有將在其中聲明為inlines = [MyModel]
的模型的外鍵。
像這樣:
# models.py
class Album(models.Model):
# various fields here
class AutoId(models.Model):
id = models.CharField(primary_key=True, max_length=10)
album = models.ForeignKey(Album, blank=True, null=True)
foo = models.CharField(max_length=12)
# admin.py
class AutoIdInline(admin.StackedInline):
model = AutoId
fields = ('id', 'foo', )
readonly_fields = ('id', 'foo', )
@admin.register(Album)
class AlbumAdmin(admin.ModelAdmin):
inlines = [AutoIdInline]
設置好之后,使用Django 1.11和id
主鍵的一些虛擬值,您應該得到它( 在本地測試並像charm一樣工作 ):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.