-1
model.py無法使用的ModelForm
class FormData(models.Model):
email = models.EmailField()
full_name = models.CharField(max_length=120)
text_area = models.CharField(max_length=250)
radio_buttons = models.CharField(max_length=25)
check_boxes = models.CharField(max_length=10)
def __unicode__(self):
return self.email
forms.py
class MyModelForm(forms.ModelForm):
class Meta:
model = FormData
fields = ['text_area','email','full_name']
widgets = {
'text_area': Textarea(attrs={'cols': 50, 'rows': 10}),
}
TYPE_CHOICES = [('s', 'small'),('m', 'medium'),('b', 'big')]
check_boxes = forms.MultipleChoiceField(choices=TYPE_CHOICES, widget=forms.CheckboxSelectMultiple())
CHOICES = [(1, 'One'),(2, 'Two'),(3, 'Three'),(4, 'Four')]
radio_buttons = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect())
views.py
def home(request):
title = 'Welcome'
form = MyModelForm(request.POST)
context = {"title":title,"form":form}
if form.is_valid():
instance = form.save(commit=False)
instance.save()
context = {"title":"Thank You!"}
return render(request,"home.html",context)
home.html做爲
來保存從複選框和單選按鈕的數據<h1>{{title}}</h1>
<form method='POST' action=''>{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Submit">
</form>
問題是我似乎無法理解如何保存來自checkboxes
和radiobuttons
的數據。表單被成功提交,但是當我查看數據庫時,check_boxes
的字段爲空,並且radio_buttons
字段顯示的值爲「False
」,而我需要我在CHOICES
列表中定義的手動值。
這是一個愚蠢的錯誤......謝謝。但是這並不能解決'radio_buttons'的問題。它仍然只保存'True'或'False',而我需要'CHOICES'列表中定義的值1或2或3。 –
您應該通過放置斷點來檢查,如果您在保存表單時獲得正確或錯誤的價值。 –