Найти - Пользователи
Полная версия: Заполнение SELECT
Начало » Django » Заполнение SELECT
1
hound
Добрый день, например, есть потребность на странице выводить select заполненный значениями из БД. Модельную форму использовать не совсем вариант, т.к этот селект будет не в рамках какой-то одной формой. Как можно отобразить?
В шаблон передать значения выборки их БД и там уже циклом перечислять элементы?
<select>
{% for item in items %}
<option value=“item.pk”>item.value</option>
{% endfor %}
</select>
hound
Так, а если не в рамках модельной формы?
Этот селект не будет частью одной формы, значение из него будет обрабатываться javsscript'ом и передавать аяксом уже на сервер.
inoks
А кто говорит про ModelForm?
modelchoicefield - используется для обычных форм.
hound
Т.е без создания формы никак?


    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        
        context['elem'] = forms.ModelChoiceField(queryset = Author.objects.all())
        return context

Если передать в шаблон таким образом, то сам виджет select не отображается.
Я просто думал, что может есть создания select в шаблоне без лишнего создания формы…
inoks
Вы можете не использовать всю форму, а использовать только селект от нее если вам так удобнее.

{{form.my_select_field}}
GreyZmeem
Можно вообще без использования формы:
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

А можно сделать templatetag, который будет выводить этот селект, чтобы каждый рыз не писать это во view.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB