Django表单缓存或重载问题

时间:2011-12-13 09:13:13

标签: django forms

我有一个向db插入值的页面。 插入后加载另一个页面,下拉列出了db值 但插入的值未在下拉列表中列出

问题不在于事务/提交等。以第二种形式检索下拉数据的查询是正确的。

Form1(第一页)

class Organization(forms.Form):   
    orgList = getOrgUnitList()     

    orgUnit = forms.CharField(label=u'Organization Name',
                            max_length=50,
                            error_messages={'required':'Organization name is required field.'})
    parentOrg= forms.ChoiceField(label=u'Parent Organization',
                       choices=[(u'Select',u'Select')]+orgList,
                       error_messages={'required':'Organization name is required field.'})

表格2(第二页)

class User(forms.Form):    
    orgUnitList = getOrgUnitList()        

    email = forms.EmailField(label=u'Email',
                         max_length=50,
                         error_messages={'required':'Email is required field'})  
    orgUnit = forms.ChoiceField(label=u'Organizational Unit',   
                  choices=orgUnitList,                        
                  error_messages={'required':'Organizational unit is required field'})

查询

def getOrgUnitList():
    orgUnitList = list(OrganizationUnit.objects.values_list
               ('OrgUnitID','OrgUnitName').order_by('OrgUnitName'))
    return orgUnitList

但是当我试图在视图中绑定选项时它正在工作 工作代码 * 视图 *

def user()
    template = get_template('AddUser.html')
    form = AddUser()     
    orgUnitList = getOrgUnitList()                    
    del objAdminUIDA
    form.fields['orgUnit'].widget.choices=orgUnitList
    variables = RequestContext(request,{'form':form})
    output = template.render(variables)
    del form
    return HttpResponse(output)

但我不能给出下拉选项,我希望在form.i需要一个form2的解决方案

1 个答案:

答案 0 :(得分:1)

首先,orgList在表单定义中进行评估,这就是选择不变的原因。您应该在表单getOrgUnitList(或其他方法)中放置__init__

其次,您没有将任何数据传递给表单,可能是您想要的

form = AddUser(request.POST or None)