Django сделать в форме поле с выбором
Подскажите пожалуйста как сделать форму с полем для выбора(скрин). Данное поле должно содержать выбор существующих групп в БД. Спасибо заранее
Модель Group
class Group(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
description = models.TextField(max_length=200)
def __str__(self):
return self.title
Пробовал таким методом но никак
class PostForm(forms.Form):
group_exists = Group.objects.values('title')
group = forms.ChoiceField(choices= group_exists, required=False)
text = forms.CharField(widget=forms.Textarea, max_length= 4, required=True)
Ответы (1 шт):
Автор решения: Andrey Maslov
→ Ссылка
используй ModelChoiceField
class PostForm(forms.Form):
group = forms.ModelChoiceField(queryset=Group.objects.all(), required=False)
text = forms.CharField(widget=forms.Textarea, max_length= 4, required=True)
а еще лучше, если у тебя есть модель Post содержащая указанные поля, то используй ModelForm
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = "__all__"# либо укажи перечень нужных тебе полей
подробней про ModelForm можно прочитать в документации https://docs.djangoproject.com/en/3.1/topics/forms/modelforms/
