Django-admin中的倒foreignkey关系

2024-04-25 05:24:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个简单的一对多关系的类。你知道吗

型号.py

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

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

管理员.py

class BarAdmin(admin.modelAdmin):
  ...

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

我该怎么做?你知道吗


Tags: pymodelfoo关系models管理员barlength
1条回答
网友
1楼 · 发布于 2024-04-25 05:24:21

您可以使用

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

如果要在模板的select标记中呈现Foo对象,可以手动执行以下操作:

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

或者可以创建django表单,请参见django forms。你知道吗

相关问题 更多 >