如何获取自定义模板表单以显示带有选项的模型?

时间:2011-09-03 16:53:32

标签: django forms select

我是一个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中找不到多少帮助。

2 个答案:

答案 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 }}