我试图自定义djando admin.py。我想在类ContributionAdmin
中注册一个模型Contribution
。在管理接口中,我需要从另一个模型Subscriber
打印一个字段application_number
编号。与模型之间存在外键关系。如何做到这一点
管理员.py
class ContributionAdmin(admin.ModelAdmin):
list_display = ('id','nlcc','subscriber','date','receipt_number','amount', 'status')
list_filter = ('nlcc',)
search_fields = ('receipt_number',)
exclude = ('subscriber',)
admin.site.register(models.Contribution, ContributionAdmin)
型号.py:
class Subscriber(models.Model):
nlcc = models.ForeignKey(NLCC)
name = models.CharField(max_length=100,blank=True,null=True)
type = models.CharField(max_length=50, choices=SUBSCRIBER_TYPE)
application_date = models.DateField(null=True)
application_number = models.IntegerField()
staff_agent = models.ForeignKey(StaffAgent, null=True, on_delete=models.SET_NULL)
class Contribution(models.Model):
nlcc = models.ForeignKey(NLCC)
subscriber = models.ForeignKey(Subscriber)
staff_agent = models.ForeignKey(StaffAgent, null=True, on_delete=models.SET_NULL)
date = models.DateField(null=True)
initial = models.BooleanField(default=False)
govt = models.BooleanField(default=False)
receipt_number = models.BigIntegerField()
amount = models.DecimalField(max_digits=10, decimal_places=2)
status = models.CharField(max_length=50, choices=CONTRIBUTION_STATUS)
status_date = models.DateField(null=True)
deleted = models.BooleanField(default=False)
package = models.ForeignKey('CourierPackage', null=True, on_delete=models.SET_NULL, related_name='contribution')
或者有没有办法返回Subscriber
名称而不是对象
创建一个将返回所需字段的方法,并将此方法的名称添加到
list_display
:更新:如果您想在
subscriber
字段的选择框中看到name
和application_number
,那么最简单的解决方案是定义Subscriber
模型的__unicode__
方法:更新2:如果订阅服务器的数目太长,则可以使用^{} 属性:
更新3:要使此字段为只读,请使用^{} :
相关问题 更多 >
编程相关推荐