【发布时间】:2020-12-18 10:02:15
【问题描述】:
我有两个模型 Item 和 Women
这是我的 2 个模型的代码
class Item(models.Model):
title = models.CharField(max_length=100)
price = models.FloatField()
discount_price = models.FloatField(blank=True, null=True)
category = models.CharField(choices=CATEGORY_CHOICES, max_length=2)
label = models.CharField(choices=LABEL_CHOICES, max_length=1)
slug = models.SlugField()
description = models.TextField()
image = models.ImageField()
def __str__(self):
return self.title
class Women(models.Model):
title = models.CharField(max_length=100)
price = models.FloatField()
discount_price = models.FloatField(blank=True, null=True)
category = models.CharField(choices=CATEGORY_CHOICES, max_length=2)
label = models.CharField(choices=LABEL_CHOICES, max_length=1)
slug = models.SlugField()
description = models.TextField()
image = models.ImageField()
def __str__(self):
return self.title
在我的view.py
我创建了Homeview(View) 来渲染homepage.html,我使用get_context_data 来渲染Item 和Women 这两个模型。
这是我的views.py的代码
class HomeView(ListView):
template_name='Ecommerce/home-page.html'
def get_queryset(self):
return Item.objects.all()
def get_context_data(self, **kwargs):
et =super(HomeView, self).get_context_data(**kwargs)
et['Item_qs']= Item.objects.all()
et['women_qs']= Women.objects.all()
return et
class ProductDetailView(DetailView):
model= Women,Item
template_name='Ecommerce/product-page.html'
我不知道我是否为 2 个模型正确编写了 ProductDetailView
现在在主页中我的第一个 div 我使用 Item 模型循环遍历
而我的第二个 div 我使用 Women 模型循环遍历
这就是我在我的 html 模板中呈现两个视图的方式 第一个用于项目模型
{% for item in Item_qs %}
<div class="col-lg-3 col-md-6 mb-4">
<!--Card image-->
<div class="view overlay">
<img src="{{ item.image.url }}" class="card-img-top"
alt="">
<a href="{{item.get_absolute_url}}">
<div class="mask rgba-white-slight"></div>
</a>
</div>
<!--Card image-->
</div>
<!--Card-->
{% end%}
这是给女性模特的
{% for items in women_qs %}
<!--Grid column-->
<div class="col-lg-3 col-md-6 mb-4">
<!--Card-->
<div class="card zoom">
<!--Card image-->
<div class="view overlay">
<img src="{{ items.image.url }}" class="card-img-top"
alt="">
<a href="{{items.get_absolute_url}}">
<div class="mask rgba-white-slight"></div>
</a>
</div>
</div>
<!--Card-->
</div>
{% endfor %}
我使用 get_absoulte_url 作为获取 Productpage.html 的 href 链接 下面是代码
def get_absolute_url(self):
return reverse("Ecommerce:product", kwargs={
'slug': self.slug })
我的问题是如何创建 ProductDetailpage(Detailview) 来获取 Item 模型和 Women 模型中各个项目的详细信息?
以及如何在模板中呈现两者
请我相信我的问题很清楚,如果有人需要澄清,我可以进一步解释。
期待你的援助之家????
【问题讨论】:
-
发布一些代码来尝试解释/说明你在做什么。
标签: django-models django-views django-class-based-views