保存单选按钮值

时间:2013-05-30 05:38:59

标签: django django-models django-forms django-templates django-views

我正在使用模型表单,

TYPE_SELECT = (
    ('0', 'Live'),
    ('1', 'Test'),
)

class ReportForm(forms.ModelForm): 
    type_select = forms.ChoiceField(widget=forms.RadioSelect(
                        renderer=HorizRadioRenderer),choices=TYPE_SELECT)  
    class Meta:
        model = Report
        fields = ['notes_other','type_select'] 

我的模特看起来像这样,

模型:

class Report(models.Model):
    user = models.ForeignKey(User, null=False)
    type_select = models.BooleanField('Complete', default=True)
    notes_other = models.TextField(null=True, blank=True)

模板是

{{ form.type_select }} 

现在,我想在5页中使用这个type_select字段。如果用户选择单选按钮并保存在第1页,它应该保存,在其他剩余页面中,应该应用它。

如果他想更改所选选项,他可以更改并保存在任何5页中,更改应适用于所有页面。

所以,我需要在所有5个页面中显示此表单,并且每个页面我都需要将该方法传递给视图。

如何做到这一点

1 个答案:

答案 0 :(得分:0)

听起来你需要一个填充初始数据的表格。如何在页面视图之间存储数据取决于您,但这通常在session

中完成

以下是将初始数据加载到表单中的方法..就像预填充单选按钮一样。

type_value = request.sesssion.get('type_value')
form = MyForm(initial={'type_select': type_value})
# rest of view

现在,在保存这5个表单中的任何一个时,让他们的视图将会话变量'type_value'设置为提交的会话变量,以使其在请求中保持不变。

if form.is_valid():  # you no doubt have a line like this.
   request.session['type_value'] = form.cleaned_data['type_select']