我有以下型号:
class Invoice(models.Model):
project = models.ForeignKey(
Project,
related_name = 'invoices'
)
假设我已经定义了Project
模型。
现在在项目模型管理员我想添加一个链接,该链接会将我重定向到Invoice
模型详细信息页面。我已经为Invoice
模型定义了管理员。现在,我在Project
模型的admin.py
文件中编写了以下代码。
def invoice_link(self, obj):
link = urlresolvers.reverse("admin:invoices_invoice_change", args=[
obj.invoices_set.all()[0].id])
return u'<a href="%s">%s</a>' % (link, obj.invoice.invoice_status)
invoice_link.short_description = 'Generate Invoice'
invoice_link.allow_tags = True
但是我使用obj.invoices_set.all()[0].id
获取相关发票对象的id
时出现以下错误。
AttributeError at /admin/projects/project/
'Project' object has no attribute 'invoices_set'
我肯定在这里犯了一个错误,但无法弄明白。如何获得反向关联对象的id
?
答案 0 :(得分:0)
如果您未提供任何invoice_set
,则会生成相关名称related_name
。但在你的情况下,你明确给出了related_name
。因此,您只需使用invoices
代替invoice_set
。