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