0

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

在你看来:

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任何值。您可能想要删除该行。

+0

答案是正确的.... – user2086641 2013-05-08 05:58:51