模板中的Django外键值

micshapicsha

我已经浏览过类似问题的其他答案,但似乎无法正常工作。这是我的模型结构:

models.py

class Seller(models.Model):
    seller_full_name = models.CharField(max_length=50)
    seller_listing_name = models.CharField(max_length=50) <-- I want to display this in template
    email = models.EmailField(max_length=50)
    date_added = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.seller_listing_name

# Create your models here.
class Product(models.Model):
    ...
    seller = models.ForeignKey(Seller, on_delete=models.CASCADE, null=True, blank=True)
    ...

    def __str__(self):
        return self.product_name

在我看来,我得到了一组查询产品

views.py

def store(request):
    products = Product.objects.values().order_by('?') # shuffle order
    args = {'products': products}
    return render(request, 'store/products-page.html', args)

在模板中,我遍历产品并构建显示商品详细信息的卡片。我还想在每张卡上显示每种产品的卖方的列表名称。我似乎无法在视图中正确获取外键语句,因为它使卖方名称应为空白。

products-page.html

{% for product in products %}
<div class="col-lg-3 col-md-6 mb-4">
    ...
        <p>
            // {{ product.seller.seller_listing_name }} // <-- display sellers name here
        </p> 
        <h4 class="card-title">
            <a href="#">{{ product.product_name }}</a>
        </h4>
        <p>#{{ product.product_id }}</p>
        <p>{{ product.description }}</p>
        <h5>${{ product.price | floatformat:2 }}</h5>
    ...
</div>
{% endfor %}

我已经对此困扰了一段时间,但似乎无法理解,所以任何帮助都很棒!

编辑我看过的一些链接:

Django:如何通过模板通过ForeignKey连接数据?

模板中的Django外键关系

如何在Django模板中访问外键表的数据?

解决方案由于以下注释,我没有意识到我是使用.order_by('?')将产品转换为字典的-这导致数据结构无法保持我的关系,因此我无法访问我的FK。

views.py

def store(request):
    products = Product.objects.order_by('?') # REMOVE .values()
    args = {'products': products}
    return render(request, 'store/products-page.html', args)

products-page.html

{% for product in products %}
<div class="col-lg-3 col-md-6 mb-4">
    ...
        <p>
            // {{ product.seller.seller_listing_name }} // <-- display sellers name here
        </p> 
        <h4 class="card-title">
            <a href="#">{{ product.product_name }}</a>
        </h4>
        <p>#{{ product.product_id }}</p>
        <p>{{ product.description }}</p>
        <h5>${{ product.price | floatformat:2 }}</h5>
    ...
</div>
{% endfor %}
我必须承认

如果是ForeignKey,则需要添加类似

{% for product in products %}
<div class="col-lg-3 col-md-6 mb-4">
    [...]
        {% for seller in product.seller_set.all %}
        <p>
            // {{ seller.seller_listing_name }} // <-- display sellers name here
        </p> 
        {% endfor %}
        <h4 class="card-title">
            <a href="#">{{ product.product_name }}</a>
        </h4>
    [...]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Django模板中显示外键值

来自分类Dev

如何显示模板django的外键值

来自分类Dev

Django中的默认外键值

来自分类Dev

Django中的外键值分配

来自分类Dev

Django中的默认外键值

来自分类Dev

在Django中获取查询对象的外键值

来自分类Dev

从模板中的Django对象获取键值对

来自分类Dev

模板中的Django外键

来自分类Dev

Viewbag中的外键值

来自分类Dev

如何获得模板中表单的外键值?

来自分类Dev

循环模板的键值-Django查询

来自分类Dev

dict zip 键值 django 模板

来自分类Dev

django基于外键更改模板中的某些内容

来自分类Dev

如何通过Django中的模板通过外键连接图像

来自分类Dev

Django的。从表单对象访问模板中的外键字段

来自分类Dev

在Django模板上显示键值数组项

来自分类Dev

如何从表单输入中插入外键值?

来自分类Dev

Django Rest Framework-创建时不提供外键值

来自分类Dev

Django-以下拉形式显示外键值而不是对象

来自分类Dev

如何让Django Admin呈现外键值而不是Object对象

来自分类Dev

Django,如何根据外键值更新数据库?

来自分类Dev

通过模板中的外键访问时如何对Django查询集进行排序

来自分类Dev

如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

来自分类Dev

Django 模板:如何在 values_list 中显示外键的值

来自分类Dev

如何使用休眠方式更新子表中的外键值

来自分类Dev

如何使用休眠方式更新子表中的外键值

来自分类Dev

如何从表中获取具有相同外键值的多行

来自分类Dev

在存储过程SQL Server中插入外键值

来自分类Dev

如何从未获取的关系中获取外键值?