簡體   English   中英

Django Admin,在StackedInline中缺少id只讀字段

[英]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字段丟失,只有foobar出現(不可編輯)。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM