我有兩個名為“消息”和“票證”的模型。消息有一個外鍵到工單。我使用 StackedInline 在 django admin 中顯示了票證消息。但問題是我希望已經創建的消息是只讀的,同時也能夠創建新消息。我也檢查了一堆問題;像這樣或這樣。但沒有一個是有幫助的!或者至少,我無法得到線索!這是我的代碼:模型.py:class Ticket(models.Model): title = models.CharField(max_length=128) #...class Message(models.Model): text = models.TextField() ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE) attachment = models.FileField(upload_to=some_url_pattern) sender = models.CharField(max_length=2, editable=False)管理員.py:class MessageInline(admin.StackedInline): model = Message extra = 1 def get_readonly_fields(self, request, obj=None): if obj: return ['text', 'attachment'] else: return []@admin.register(Ticket)class ResponderAdmin(admin.ModelAdmin): fields = ['title'] inlines = [MessageInline]可以看出,我試圖通過覆蓋來實現目標,get_readonly_fields但這就是發生的事情: 管理頁面的截圖從圖片中可以看出,每條消息內聯都已設為只讀,我無法添加新消息......誰能幫我解決這個問題?
如何使用 StackedInline 類使現有模型對象只讀但也能夠創建新模型對象?
慕尼黑5688855
2022-01-18 17:33:04