forms.py
Date_Format = (
('0', ' dd / mm / yyyy'),
('1', 'mm / dd / yyyy'),
)
Time_Format = (
('0', ' 12 hour AM / PM '),
('1', ' 24 hour '),
)
class SettingsForm(forms.ModelForm):
date_format = forms.ChoiceField(widget=forms.RadioSelect(), choices=Date_Format)
time_format = forms.ChoiceField(widget=forms.RadioSelect(), choices=Time_Format)
class Meta:
model = Settings
fields = ['date_format','time_format']
views.py
def date_format(request):
# settingsForm = SettingsForm({'user':request.user})
settings = Settings.objects.get(user=2)
settingsForm = SettingsForm(instance=settings)
# dateformatForm = DateFormatForm()
# timeformatForm = TimeFormatForm()
settingsForm = SettingsForm()
if request.method =='POST':
# dateformatForm = DateFormatForm(request.POST)
# timeformatForm = TimeFormatForm(request.POST)
settingsForm = SettingsForm(request.POST,instance=settings)
if (settingsForm.is_valid()):
settings=settingsForm.save()
# timeformatForm.save()
return redirect('/member/follow-up/')
return render_to_response( 'incident/date_format.html',
{
'about_menu': True,
'SettingsForm':settingsForm,
},
context_instance=RequestContext(request))
models.py
class Settings(models.Model):
user = models.ForeignKey(User, null=True)
date_format = models.CharField('Date format', max_length=100)
time_format = models.CharField('Time format', max_length=100)
模板是
<form action="/member/date-format/" method="POST"> {% csrf_token %}
{{ SettingsForm.date_format }}
{{ SettingsForm.time_format }}
</form>
我在这里使用模型表单将表单值存储在数据库中。
如果我选择单选按钮选项。相应的值将保存在数据库中。但是,如果页面被重新加载,则选中的单选按钮将取消选中。我不知道使用什么逻辑来执行此操作。
此外,可以在不使用modelsForm的情况下在模板中保存单选按钮的值。
由于
答案 0 :(得分:0)
在您看来:
def date_format(request):
# settingsForm = SettingsForm({'user':request.user})
settings = Settings.objects.get(user=2)
settingsForm = SettingsForm(instance=settings)
# dateformatForm = DateFormatForm()
# timeformatForm = TimeFormatForm()
settingsForm = SettingsForm()
....
您正在使用空表单重置settingsForm
,这将显示没有来自实例settings
的任何值的表单。您可能想删除该行。