Posted under » Django on 17 Jun 2021
From intro to Django Forms class.
If you want choices in radio button.
from django import forms
VOTE_CHOICES= [(1,'Agree'), (2,'Disagree'), ]
class VoteForm(forms.Form):
q_id = forms.CharField(label='Question code', max_length=2)
rating = forms.IntegerField(label='How do you feels',
widget=forms.RadioSelect(choices=VOTE_CHOICES))
If you want a hidden field
from django import forms
class VoteForm(forms.Form):
q_id = forms.CharField(label='Question code', widget=forms.HiddenInput())
When you have to deal with database, for example, Questionnaire.
from django import forms
from .models import Questionnaire
class VoteForm(forms.ModelForm):
class Meta:
model = Questionnaire
fields = ('q_id', 'rating' )
q_id = forms.CharField(label='Question code', max_length=2)
rating = forms.IntegerField(label='How do you feels')
Note, you have to import Questionnaire. Then "(forms.ModelForm):" and the "class Meta:". Here is another example
from django import forms
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('comment_text',)
comment_text = forms.CharField(widget=forms.Textarea)
If you get "Meta.fields cannot be a string. Did you mean to type: ('comment_text',)?" error, it is because you did not put the comma at the end of comment_text.
The final step is to create the CGI for storing the POST request to the database.