Форум сайта python.su
Добрый день, например, есть потребность на странице выводить select заполненный значениями из БД. Модельную форму использовать не совсем вариант, т.к этот селект будет не в рамках какой-то одной формой. Как можно отобразить?
В шаблон передать значения выборки их БД и там уже циклом перечислять элементы?
<select>
{% for item in items %}
<option value=“item.pk”>item.value</option>
{% endfor %}
</select>
Офлайн
https://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield
Офлайн
Так, а если не в рамках модельной формы?
Этот селект не будет частью одной формы, значение из него будет обрабатываться javsscript'ом и передавать аяксом уже на сервер.
Офлайн
А кто говорит про ModelForm?
modelchoicefield - используется для обычных форм.
Офлайн
Т.е без создания формы никак?
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['elem'] = forms.ModelChoiceField(queryset = Author.objects.all()) return context
Офлайн
Вы можете не использовать всю форму, а использовать только селект от нее если вам так удобнее.
{{form.my_select_field}}
Офлайн
Можно вообще без использования формы:
class IndexView(TemplateView): template_name = 'TestDjango/index.html' def get_context_data(self, **kwargs): context = super(IndexView, self).get_context_data(**kwargs) context.update({ 'my_select': forms.ModelChoiceField(MyModel.objects.all()).widget.render('select_name', None), }) return context
Отредактировано GreyZmeem (Дек. 14, 2014 01:34:16)
Офлайн