我是一个Django新手,正在制作一个简单的杂货店应用程序,它有三列:项目,数量和类别(例如Dairy,Bread等)。这是我的物品模型:
CATEGORY_CHOICES = (
('B', 'Bread'),
('D', 'Dairy'),
)
class Item(models.Model):
name = models.CharField(max_length=200)
quantity = models.IntegerField()
category = models.CharField(max_length=1, choices=CATEGORY_CHOICES)
我应该在html表单中写一下,让用户选择其中一个类别?这是我到目前为止所做的:
<table>
{% for each_item in total_items %}
<tr>
<td><label for="id_item{{each_item}}" id="tbb">Item</label></th>
<td><label for="id_amount{{each_item}}" id="tbb">Amount</label></th>
<td><label for="id_category{{each_item}}" id="tbb">Category</label></th>
</tr>
<tr>
<td><input id="id_item{{each_item}}" type="text" name="item{{each_item}}" size="64"/></td>
<td><input id="id_amount{{each_item}}" type="text" name="amount{{each_item}}" size="24"/></td>
接下来应该让用户在类别列表中选择?
在Django documentation中找不到多少帮助。
答案 0 :(得分:0)
我可能误解了你在寻找什么,但听起来你只想要一个带有每个类别选项的选择菜单。当用户选择类别时,可以在服务器端细化项目。或者,您可以使用复选框,以便选择多个类别。
<select name="category">
{% for category in categories %}
<option>{{ category }}</option>
{% endfor %}
</select>
或
{% for category in categories %}
{{ category }}<input type="checkbox" name="{{ category }}" class="categories"/>
{% endfor %}
提交选择后,您可以使用以下内容优化显示的项目:
items = Item.objects.filter(category=request.GET['category'])
或
items = Item.objects.filter(category__in=request.GET['categories'])
这就是你要找的东西吗?
答案 1 :(得分:0)
我不明白所有逻辑是什么。你这样做:
{{ form.category }}