【问题标题】:Inverted foreign-key relation in django admindjango admin中的反转外键关系
【发布时间】:2014-07-09 11:53:40
【问题描述】:

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

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 管理员编辑“Bar”类时,我希望在多行选择 HTML 标记中查看每个 Foo 对象。当我验证表单时,应该更新 Foo 和 Bar 之间的关系。

我该怎么做?

【问题讨论】:

    标签: python django django-admin


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2013-02-26
      • 2015-04-03
      • 1970-01-01
      • 2014-06-19
      • 2020-02-12
      • 1970-01-01
      • 2017-05-01
      • 2013-09-01
      • 1970-01-01
      相关资源
      最近更新 更多