2016-11-07 38 views
0

我有以下模型:Django管理環節扭轉關係對象

class Invoice(models.Model): 
    project = models.ForeignKey(
    Project, 
    related_name = 'invoices'   
    ) 

假設我已經定義了Project模型。

現在項目模型管理員我想添加一個鏈接,將我重定向到Invoice模型細節page.I已經爲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

如果您不提供任何related_name,則會生成相關名稱invoice_set。但在你的情況下,你明確地給予related_name。所以你只需要使用invoices而不是invoice_set