模板中的Django多对多字段并通过

因为斯托

在我的模型中有许多许多领域。我一直在努力让它们出现在模板中。一个是常规的 ManyToMany 字段,另一个使用 through。问题是金额没有显示。我知道目前迭代只为pcbuilds.components.all 中的组件定义如何管理那里的金额?

模型.py:

class Component(models.Model):
    name = models.CharField(max_length=100, unique=True,help_text='Component name')
    manufacturer = models.IntegerField(blank=True,null=True,choices=MANUFACTURERS)
    model = models.CharField(max_length=100,unique=True,blank=True,null=True, help_text='model')

class Tag(models.Model):
title = models.CharField(max_length=100,unique=True,blank=True,null=True, help_text='tagname')


class PCBuilds(models.Model):
    title = models.CharField(max_length=50, help_text='PC build title')
    components = models.ManyToManyField(Component,help_text='Pick your components from the list or create and add them.',through='Componentlist')
    subtitle = models.CharField(blank=True,max_length=80, help_text='Subtitle')

def __str__(self):
    return self.title

class Componentlist(models.Model):
    component = models.ForeignKey(Component, on_delete=models.CASCADE,related_name='components')
    pcbuild = models.ForeignKey(PCBuilds, on_delete=models.CASCADE,related_name='pcbuilds')
    amount = models.FloatField(null=True,help_text='amount')

模板:

<div class="card-deck">
    {% for pcbuilds in object_list|slice:":3" %}
        <div class="card" style="width: 18rem;">
            <div class="card-header">
                <a href="{% url 'pcbuilds_detail' pcbuilds.pk %}">
                <span class="font-weight-bold">{{ pcbuilds.title }}</span></a> &middot;
                <span class="text-muted">{{ pcbuilds.subtitle }}</span>
            </div>
            <div class="card-body">
            <ul>
            {% for component in pcbuilds.components.all %}
                   <li>{{ component.name}}{{ component.manufacturer}}{{ component.model }}{{ componentlist.amount }}</li>
            {% endfor %}
            </ul>
            </div>
            <div class="card-footer text-center text-muted">
            {% for tag in recipe.tags.all %}
            Tags: {{ tag.title }}
            {% endfor %}
            </div>
        </div>

        <br />
{% endfor %}
丹尼尔罗斯曼

你没有componentlist在那里定义,所以模板会忽略它。通常,您需要遵循关系,就像您首先获得组件一样。但是这样就无法访问直通表,因为您已经有效地通过它来获取目标表。

相反,您需要遵循从 pcbuild 到直通表以及从那里到组件的关系:

 {% for componentlist in pcbuilds.pcbuilds.all %}
           <li>{{ componentlist.component.name}}{{ componentlist.component.manufacturer}}{{ componentlist.component.model }}{{ componentlist.amount }}</li>
  {% endfor %}

请注意,您在该直通表中的相关名称很奇怪,这就是为什么我不得不使用那个令人困惑的pcbuilds.pcbuilds.all. pcbuild 到 componentlist 的反向关系应该是componentlist_set,这是默认的;应该没有任何理由改变这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Django中的api在多对多字段中添加新项目

来自分类Dev

Django:过滤多对多字段

来自分类Dev

Django模型中多对多字段的过滤器选择

来自分类Dev

如何检查多对多字段中是否存在Django用户?

来自分类Dev

如何在Django中执行查询多对多字段?

来自分类Dev

在多对多字段Django中按对象值排序

来自分类Dev

如何在Django模板中将相关的多对多字段显示为表格?

来自分类Dev

django多对多字段注释和计数

来自分类Dev

如何从Django多对多字段获取数据?

来自分类Dev

Django多对多字段导致错误

来自分类Dev

Django Admin上的多对多字段视图

来自分类Dev

如何从Django多对多字段获取数据?

来自分类Dev

Django ORM:递归多对多字段联接

来自分类Dev

通过模型字段在 Django 模板中定位

来自分类Dev

Elasticsearch中的多字段,多类型搜索

来自分类Dev

在表单中设置多对多字段的样式

来自分类Dev

Django 1.8.3:在模板中显示多对多附加字段

来自分类Dev

如何覆盖 get_queryset 方法以仅显示 django 中多对多字段中包含的对象?

来自分类Dev

在Django中自动填充一组通用的多对多字段?

来自分类Dev

Django为查询集中的每个项目添加到多对多字段中吗?

来自分类Dev

如何在Django中基于类的视图中访问多对多字段?

来自分类Dev

订购包含多对多字段的对象,需要在Django中预先订购

来自分类Dev

如何在Django中基于类的视图中访问多对多字段?

来自分类Dev

为Django中的多对多字段自定义相关对象

来自分类Dev

Django:访问多对多中的额外字段(通过=)

来自分类Dev

Django模型中的多字段分配

来自分类Dev

POST中的Django多字段过滤

来自分类Dev

Django关于外键和多对多字段的简单搜索

来自分类Dev

如何获取Django模型的多对多字段总数?

Related 相关文章

  1. 1

    通过Django中的api在多对多字段中添加新项目

  2. 2

    Django:过滤多对多字段

  3. 3

    Django模型中多对多字段的过滤器选择

  4. 4

    如何检查多对多字段中是否存在Django用户?

  5. 5

    如何在Django中执行查询多对多字段?

  6. 6

    在多对多字段Django中按对象值排序

  7. 7

    如何在Django模板中将相关的多对多字段显示为表格?

  8. 8

    django多对多字段注释和计数

  9. 9

    如何从Django多对多字段获取数据?

  10. 10

    Django多对多字段导致错误

  11. 11

    Django Admin上的多对多字段视图

  12. 12

    如何从Django多对多字段获取数据?

  13. 13

    Django ORM:递归多对多字段联接

  14. 14

    通过模型字段在 Django 模板中定位

  15. 15

    Elasticsearch中的多字段,多类型搜索

  16. 16

    在表单中设置多对多字段的样式

  17. 17

    Django 1.8.3:在模板中显示多对多附加字段

  18. 18

    如何覆盖 get_queryset 方法以仅显示 django 中多对多字段中包含的对象?

  19. 19

    在Django中自动填充一组通用的多对多字段?

  20. 20

    Django为查询集中的每个项目添加到多对多字段中吗?

  21. 21

    如何在Django中基于类的视图中访问多对多字段?

  22. 22

    订购包含多对多字段的对象,需要在Django中预先订购

  23. 23

    如何在Django中基于类的视图中访问多对多字段?

  24. 24

    为Django中的多对多字段自定义相关对象

  25. 25

    Django:访问多对多中的额外字段(通过=)

  26. 26

    Django模型中的多字段分配

  27. 27

    POST中的Django多字段过滤

  28. 28

    Django关于外键和多对多字段的简单搜索

  29. 29

    如何获取Django模型的多对多字段总数?

热门标签

归档