我正在使用django1.9,
我有一个有外国人的模型
class Foo(models.Model):
bar = models.ForeignKey(Bar)
class Bar(models.Model):
name = models.CharField(max_length=50)
这是我的FooAdmin:
class FooAdmin(admin.ModelAdmin):
list_display = ['bar']
def def related_bar(self, obj):
link = urlresolvers.reverse("admin:foo_foos", args=[obj.bar.id])
return u'<a href="%s">%s</a>' % (link, obj.bar.id)
related_bar.short_description = 'bar'
现在在管理员Foo的显示列表中,我想要一个链接转到条形显示列表,我已经尝试过,但它引发了以下错误,
Reverse for 'foo_foos' with arguments '(1,)' and keyword arguments '{}' not found. 0 pattern(s) tried: []
我肯定错过了一些东西,但想通了。那么在django中最好的方法是什么?我试图在文档中搜索但在这个问题上找不到相关的方法。
答案 0 :(得分:1)
首先,您尝试获取bar
显示列表,但您正在解析foo_foos
而不是foo_bar。此外,您缺少_change
后缀,以表明您想要管理员详细信息视图。
def related_bar(self, obj):
link = urlresolvers.reverse("admin:foo_bar_change", args=[obj.bar.id])
return u'<a href="%s">%s</a>' % (link, obj.bar.id)
来自Django docs,admin urls模式,是这些。
Page URL name Parameters
Changelist {{ app_label }}_{{ model_name }}_changelist
Add {{ app_label }}_{{ model_name }}_add
History {{ app_label }}_{{ model_name }}_history object_id
Delete {{ app_label }}_{{ model_name }}_delete object_id
Change {{ app_label }}_{{ model_name }}_change object_id