如何解决在Django中为无序列表创建模型
在Django中创建模型字段的最佳方法是什么,以便在模板中,我可以如下迭代其对象:
<ul>
{% for item in ModelName.fieldname %}
<li>{{ item }}</li>
{% endfor %}
</ul>
所以它输出类似,让我们说:
<h1>Apple Products</h1>
<ul>
<li>Ipod</li>
<li>Apple</li>
<li>Ipod mini</li>
<li>Display XDR</li>
<li>Macbook Pro</li>
</ul>
我的想法:
- 创建一个单独的模型,然后将其作为父模型的外键引用。
- 创建一个
CharField
并用逗号分隔每个列表项,然后创建一个函数;返回list
并用逗号循环list
分开的项目。
请分享您的想法,什么是更好的方法和专业的方法。谢谢。
解决方法
在这里>>>>在 models.py
中class Category(models.Model):
name = models.CharField(max_length=50,null=True,blank=True,unique=True)
class Product(models.Model):
name = models.CharField(max_length=80,unique=True)
category = models.ForeignKey(Category,on_delete=models.CASCADE,blank=True)
在您的 views.py 中::
def myView(request):
my_list = []
all_prd = Product.objects.all()
all_cat = Category.objects.all()
for cat in all_cat:
temp = list(all_prd.objects.filter(category__name = cat ))
my_list.append(temp)
my_list = list(filter(None,my_list)
context = [
'my_list' : my_list,]
return(request,'cute.html',context)
在 cute.html ::
<ul>
{% for item in my_list %}
{% for prd in item %}
{{prd.name}}
{% endfor %}
<br>
<br>
{% endfor %}
</ul>
我给了你一个提示。可以根据需要对其进行修改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。