2014-07-09 140 views
0

我有兩個簡單的一對多關係的類。django admin中的倒序外鍵關係

models.py

class Bar(models.Model): 
    label = models.CharField(max_length=36) 

class Foo(models.Model): 
    bar = models.ForeignKey(Bar, null = True) 

admin.py

class BarAdmin(admin.modelAdmin): 
    ... 

當我從編輯Django管理 「棒」 類,我希望看到每個對象的Foo在多行選擇HTML標籤中。當我驗證表格時,Foo和Bar之間的關係應該更新。

我該怎麼做?

回答

1

可以使用

bar = Bar.objects.get(pk = bar_id) 
foo_set = bar.foo_set.all() 

解決美孚實例,其中bar_id是你的酒吧對象的主鍵,或者

foo_set = Foo.objects.filter(bar__pk = bar_id) # Note the double underscore 

如果你想渲染美孚在選擇標籤對象在模板中,您可以手動執行此操作:

<select> 
{% for f in foo_set %} 
<option value="{{ f.pk }}">{{ f }}</option> 
{% endfor %} 
</select> 

或者你可以創建一個Django表單,請參閱django forms