[英]Django Admin Panel, Relations and ReadOnly fields
我在model.py中有一个非常简单的方案
class Attachment(models.Model):
name = models.CharField(max_length=100,
verbose_name='name')
file = models.FileField(upload_to=settings.MEDIA_ROOT,
null=True,
verbose_name='file')
def __str__(self):
return self.name
class Document(models.Model):
title = models.CharField(max_length=250, blank=False)
attachment = models.ForeignKey('Attachment', null=True, on_delete=models.CASCADE)
date = models.DateField(blank=True)
approved = models.BooleanField(default=False)
def __str__(self):
return self.title
还有我的admin.py
class DocumentAdmin(admin.ModelAdmin):
fieldsets = (
('GENERAL', {
'fields': ('title', 'attachment', 'date', 'approved')
}),
)
admin.site.register(Document, DocumentAdmin)
我正在努力解决两个问题:
首先,我想在DocumentAdmin界面中包括附件的字段。 我已经在Document模型中创建了一个get方法。
def get_attachment_file(self):
return self.attachment.file
方法get_attachment_file在list_display中工作,但不在fieldset中工作
list_display = ('get_attachment_file',)
另外,在将“ approved”设置为“ True”之后,我想将字段“ approved”和“ date”设为只读。
谢谢你们。
您应该能够添加get_attachment_file并将其设置为只读字段。 要使批准日期和批准日期后的日期设置为True,可以使用get_readonly_fields方法
def get_readonly_fields(self, request, obj=None):
readonly_fields = ('get_attachment_file',)
if obj and obj.approved:
readonly_fields += ('approved', 'date')
return readonly_fields
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.