繁体   English   中英

django admin中的反转外键关系

[英]Inverted foreign-key relation in django admin

我有两个具有简单一对多关系的类。

models.py

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

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

管理员

class BarAdmin(admin.modelAdmin):
  ...

当我从django管理员编辑“ Bar”类时,我希望看到多行选择HTML标记中的每个Foo对象。 验证表单时,应该更新Foo和Bar之间的关系。

我怎样才能做到这一点 ?

您可以使用以下方法处理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表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM