在Django admin中显示相关模型的可调用属性

时间:2017-07-25 15:17:29

标签: python django django-models django-forms django-admin

我有下一个型号:

class BaseModel(models.Model):
    def admin_link(self):
        url = reverse(
            'admin:%s_%s_change' % (self._meta.app_label, self._meta.model_name), args=(self.pk, )
        )

        return '<a href="{url}">{name}</a>'.format(
            url=url, id=str(self)
        )
    admin_link.allow_tags = True
    admin_link.short_description = _('Admin Link')

 class Account(BaseModel):
     pass

 class Order(BaseModel):
     account = models.ForeignKey(
         'base.Account', on_delete=models.DO_NOTHING, related_name='orders',
         verbose_name=_('Account'), null=False
     )

我为Order模型创建了管理模型:

class OrderAdminModel(admin.ModelAdmin):
    fieldsets = [
        (_('Order'), {'fields': [
            'account__admin_link', 
        ]})
    ]

当我去订购更改页面时,我发现了错误:

  

FieldError at / admin / base / order / 1475d5d6-135f-454e-bec4-a801183dfc5f / change /   为订单指定的未知字段(account__admin_link)。检查字段/字段集/排除类OrderAdmin的属性。

我不想在不同的管理模型中编写许多相同的功能(我与Account模型有很多关系)。

我可以使用一个功能但是在字段和字段集中显示它吗?

0 个答案:

没有答案