Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 外键-如何在模板中解决此问题-django_Python_Django_Django Templates - Fatal编程技术网

Python 外键-如何在模板中解决此问题-django

Python 外键-如何在模板中解决此问题-django,python,django,django-templates,Python,Django,Django Templates,我有3种型号: Book、Topiccenter和EntryBook 以下是模型定义: class Book(models.Model): title = models.TextField() language = models.TextField() class Topiccenter(models.Model): title = models.TextField(): description = models.TextField() class EntryBook(mod

我有3种型号:

Book
Topiccenter
EntryBook

以下是模型定义:

class Book(models.Model):
  title = models.TextField()
  language = models.TextField()

class Topiccenter(models.Model):
  title = models.TextField():
  description = models.TextField()

class EntryBook(models.Model):
  book = models.ForeignKey(Book,related_name="b_entries")
  topiccenter = models.ForeignKey(Topiccenter,related_name="tc_books")
现在我在Topiccenter
T
。我搜索书籍并在数据库中获取所有书籍。如您所见,每本书可以位于多个主题中心

我想做的是,在搜索结果中,我想显示每本书是否包含在当前Topiccenter中:

我将把所有书籍
books=Book.objects.all()
和当前主题中心设置为
tc
,并将它们呈现到模板和模板中

{% for book in books %}
  {% for entry in book.b_entries.all %}
    {% if entry.topiccenter.id == tc.id %}
      already in this Topiccenter
    {% else %}
      add to this topiccenter
    {% endif %}
  {% endfor %}
{% endfor %}
但问题是,一本书在两个主题中心,在模板中,我得到的
已经在这个主题中心
添加到这个主题中心
,这是没有意义的。如何修复我的逻辑,以便检查当前主题中心中的书籍是否存在,如果没有,则显示它们
add
按钮


谢谢

查看如何将其移动到视图中。在这种情况下,获取与
tc
关联的所有书籍,并将其发送到上下文中

现在,模板逻辑将是:

{% for book in books %}
  {% if book in tc_books %}
    already in this Topiccenter
  {% else %}
      add to this topiccenter
  {% endif %}
{% endfor %}
何处(视图中)


并将其发送到上下文中

伟人,想知道我为什么没有想到这个主意:)谢谢,更快的办法是把主题中心的书和不在主题中心的书都拿出来:)@lcfseth,是的,你也是rihgt@icfseth-我同意你的看法,但是如果你只是想要一个长长的所有书籍的列表,带有添加/已经添加的选项,这在我看来是更好的选择
tc_books = Books.objects.filter(b_entries__topiccenter = tc)