Как получить настраиваемую форму шаблона для отображения модели с выбором? - PullRequest
0 голосов
/ 03 сентября 2011

Я новичок в Django и создаю простое приложение для продуктовых магазинов, которое имеет три столбца: «Предмет», «Количество» и «Категория» (например, «Молочные продукты», «Хлеб» и т. Д.). Вот моя модель товара:

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 .

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Я не понимаю, для чего вся эта логика. Вы просто делаете это:

{{ form.category }}
0 голосов
/ 03 сентября 2011

Возможно, я неправильно понимаю, что вы ищете, но звучит так, будто вы просто хотите выбрать меню с каждой опцией категории.Когда пользователь выбирает категорию, элементы могут быть уточнены на стороне сервера.В качестве альтернативы вы можете использовать флажки для выбора нескольких категорий.

<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'])

это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...