当前位置: 首页 > 知识库问答 >
问题:

在Django模板中加载特定的外键属性

宦博雅
2023-03-14

德夫斯,

我有一个2个模型,其中一个有一个外键属性作为对另一个的引用。现在我尝试在模板中查看这两个对象。

class ItemDetailView(DetailView):
    model = Item
    template_name = "product.html"

    def get_context_data(self, **kwargs):
        context = super(ItemDetailView, self).get_context_data(**kwargs)
        context['markets'] = Market.objects.all()
        # And so on for more models
        return context 

在我的模板中,我只想要我的产品的确切市场

我尝试了这样的东西:

      {% for market in markets %}  // or {% for object.market in markets %} 
  
      {% if market.market == object.market %}

     >> Do smth if conditions match << 

      {% endif %}

    {% endfor %}

在循环中,我得到像x1、x2、x3和object.market这样的字符串的值为x1。

所以我只想输出x1。

这些是我的模型:

class Market(models.Model):
    market = models.CharField(max_length=30)
    branch = models.CharField(choices=BRANCH_CHOICES, max_length=1)
    image = models.ImageField(blank=True)
    slug = models.SlugField(blank=True)

    def __str__(self):
        return self.market

    def get_absolute_url(self):
        return reverse("core:market-product-list", kwargs={
        'slug': self.slug
    })

class Item(models.Model):
    title = models.CharField(max_length=100)
    market = models.ForeignKey(Market, related_name='children', on_delete=models.CASCADE, blank=True, null=True)
    price = models.FloatField()
    discount_price = models.FloatField(blank=True, null=True)
    category = models.ForeignKey(ItemCategory, related_name='children', on_delete=models.CASCADE, blank=True, null=True)

    label = models.CharField(choices=LABEL_CHOICES, max_length=1)
    slug = models.SlugField()
    path = models.CharField(default='/market-product-list/', max_length=100)
    description = models.TextField()
    image = models.ImageField()


共有1个答案

宣意致
2023-03-14

只需像模型中那样调用特定市场的字段。

 {% for market in markets %}  // or {% for object.market in markets %} 

  {% if market.market == object.market %}

 {{ market.fieldname }} 

  {% endif %}

{% endfor %}
 类似资料:
  • 问题内容: 我知道你会说这个问题被问过很多次了,但是我还没有解决呢… models.py views.py 模板: 我已经尝试过上面的模板,但没有得到任何结果。所以我想在DocImage类中获取imageurl地址… 所有帮助 问题答案: 如果您查看外键文档,如果您有类似的关系 您需要像这样在DocImages类上定义外键: 如果您未设置相关名称,则可以像下面这样从Doc访问DocImage: 有

  • 我创建了一个出价模型,以便类型2用户可以在类型1用户创建的一些“帖子”上出价。为了实现这一点,我在模型“出价”中为帖子字段做了一个外键。 实际上,我想把出价与一个特定的帖子联系起来,在“帖子”模型中自动生成“id”。因此,我将get_absolute_url放在我的模板中的Post'id'旁边。我是django的新手,我不确定它是否能满足我的需求。 我如何将带有post_id的出价与模板中的某个特

  • 对编码来说是新的,如果已经涵盖了,请道歉。花了几个晚上在Django的文档、YouTube、谷歌和这里尝试各种方法来解决这个问题。 我有一个与驾驶员相关的模型路线,我试图在我的模板上显示所有与该路线相关的驾驶员的路线。然而,目前我所能得到的只是来自路线模型的数据,而不是相关驾驶员的数据。 会感谢任何帮助,因为我正在努力让我的头! Models.py Views.py 样板 我尝试过.prefetc

  • 问题内容: 我正在尝试根据的特定字段的值过滤Django中的表。 例如,我有两个模型: 我想根据相关项目的名称过滤我的资产列表。 目前,我正在执行两个查询: 我想知道是否有一种方法可以在主查询中指定这种过滤? 问题答案:

  • 问题内容: 我有一个实体课 } 在某些情况下,我不想加载对象A,因为我已经有了该对象。对于C也是如此。但是这些是特定的场景,我根本不想加载那些对象。 有什么方法可以告诉Hibernate不要加载实体对象的某些属性。{没有渴望/获取建议。我只希望仅在特定情况下才发生这种情况] 注意:我现在使用Criteria来获取对象。 问题答案: 由于用于查询,因此可以在运行时根据条件使用“ fetch”关键字指

  • 我需要创建许多不同的FXML文件,每个文件都有一个一致的布局。每一个都有一个锚烷,可以容纳不同的内容物。 有没有办法加载一个“基本”FXML文件,然后加载第二个FXML文件,并将数据路由到第一个FXML文件? 例如,FXML#1有一个边框。FXML#2有一个按钮,文本字段,标签等。如何加载#1,然后加载#2作为#1的孩子?