我有两个简单的一对多关系。
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):
...
当我正在编辑" Bar"来自django admin的类,我想在多行选择HTML标记中看到每个Foo对象。当我验证表格时,应该更新Foo和Bar之间的关系。
我该怎么做?
答案 0 :(得分:1)
您可以使用
解决Foo实例问题bar = Bar.objects.get(pk = bar_id)
foo_set = bar.foo_set.all()
其中bar_id
是Bar对象的主键,或者
foo_set = Foo.objects.filter(bar__pk = bar_id) # Note the double underscore
如果要在模板中的选择标记中渲染Foo对象,可以手动执行:
<select>
{% for f in foo_set %}
<option value="{{ f.pk }}">{{ f }}</option>
{% endfor %}
</select>
或者您可以创建一个django表单,请参阅django forms。