我試圖在 django admin 的“帖子”部分顯示兩個新行(欄位),它們是從其他兩個資料庫列獲取資料的只讀欄位。我的代碼有效,但它不會創建兩個新欄位,它只顯示一個。
我對 Django 和 python 比較陌生,我正在努力弄清楚如何做到這一點。我花了太多時間嘗試不同的事情卻沒有成功。
在我的測驗背景關系中,我希望看到兩個名為“New row 1”和“New row 2”的只讀欄位,它們從名為“est_completion_time”和“downtime”的兩個資料庫列中獲取資料。我只能在輸出中看到“新行 2”。

這是我在 admin.py 中的代碼:
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
form = JBForm
exclude = ['est_completion_time'] # hide this database column
exclude = ['downtime'] # hide this database column
readonly_fields = ['placeholder_1'] # display this one
readonly_fields = ['placeholder_2'] # display this one
@admin.display(description="New row 1")
def placeholder_1(self, obj):
return obj.est_completion_time # a new readonly field which should display contents of 'est_completion_time' column
@admin.display(description='New row 2')
def placeholder_2(self, obj):
return obj.downtime # a new readonly field which should display contents of 'downtime' column
通讀檔案后,我找不到解決方案:
https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fieldsets
https://docs.djangoproject.com/en/4.0/ref/contrib/admin/actions/
任何幫助將不勝感激。
uj5u.com熱心網友回復:
我相信您需要指定excludedandreadonly_fields一次。
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
form = JBForm
exclude = ["est_completion_time", "downtime"]
readonly_fields = ["placeholder_1", "placeholder_2"] # display these two
@admin.display(description="New row 1")
def placeholder_1(self, obj):
return obj.est_completion_time
@admin.display(description="New row 2")
def placeholder_2(self, obj):
return obj.downtime
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/498006.html
上一篇:將Django-tables2與基于類的視圖和非默認資料庫一起使用會拋出“NameError:name'TypeError'isnotdefined”
下一篇:如何在django中創建子域?
