У меня есть форма, которая содержит поле выбора элементов в моей базе данных. Мой вопрос: Как я могу получить выбранное значение моего choicheField?
forms.py
class list_data(forms.Form):
message = forms.CharField(widget=forms.Textarea)
def __init__(self, author, *args, **kwargs):
super(list_data, self).__init__(*args, **kwargs)
self.fields['List'] = forms.ChoiceField(
choices=[(o.id, str(o)) for o in List.objects.filter(author=author)]
)
views.py
def sms(request):
form2 = list_data(author=request.user)
if request.method == "POST":
form2 = list_data(request.POST)
if form2.is_valid():
choice = form2.cleaned_data["List"]
print(choice)
else:
return render(request, "data_list/sms.html", {"form2": form2})
return render(request, "data_list/sms.html", {"form2": form2})
Когда я пытаюсь нажать Кнопка «Отправить» выдаёт мне эту ошибку:
int() argument must be a string, a bytes-like object or a number, not 'QueryDict'
Итак, я изменил form2 = list_data(request.POST)
на form2 = list_data(author=request.user)
ошибка исчезла, но больше ничего не печатается.
Спасибо за помощь
models.py
class List(models.Model):
item = models.CharField(max_length=100)
content = models.TextField()
site = models.CharField(max_length=11, choices=THE_SITE)
content_list = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.item