如何解决使用SelectWithPop将值插入模型,但是除非重新启动服务器,否则页面不会更新
|| 因此,我有一个SelectWithPop表单。因此,用户可以选择一个变量,也可以再添加一个。 将打开一个新页面,供用户输入数据。 我的问题是我可以在模型中插入新变量,但是当我返回页面选择一个值时,直到重新启动服务器后才显示新值。 这是正常现象还是我做错了什么? 如果是的话,有什么办法可以解决这个问题? 这是我的看法:def add(request,field):
return handlePopAdd(request,HospitalForm,\'hospital_name\')
def handlePopAdd(request,addForm,field):
if request.method == \"POST\":
form = addForm(request.POST)
if form.is_valid():
try:
newObject = form.save()
except forms.ValidationError,error:
newObject = None
if newObject:
return HttpResponseRedirect(reverse(\'form\',args=[\'clinical\']))
else:
form = addForm()
return render_to_response(\"popadd.html\",{ \'form\': form })
形式:
class CheckPatForm(forms.Form):
pat = forms.IntegerField(label=\"Paciente\")
_names = list(Hospital.objects.values_list(\'hospital_id\',\'hospital_name\'))
_names.append((\'\',\'\'))
hosp = forms.ChoiceField(_names,widget=SelectWithPop(),label=\"Hospital\",required=False)
proc = forms.IntegerField(label=\"Processo\",required=False)
class HospitalForm(forms.ModelForm):
class Meta:
model = Hospital
模板添加:
<a
href=\"/SIAM-TB/insert/form/add/{{ field }}\"
class=\"add-another\"
id=\"add_id_{{ field }}\">
<img src=\"http://rome/SIAM-TB/admin_media/img/admin/icon_addlink.gif\"
width=\"10\" height=\"10\" alt=\"Add Another\"/>
</a>
解决方法
将获取医院查询集的代码放入表格init中。例如
....
hosp = forms.ChoiceField(widget=SelectWithPop(),label=\"Hospital\",required=False)
def __init__(self,*args,**kwargs):
super(CheckPatForm,self).__init__(*args,**kwargs)
names = list(Hospital.objects.values_list(\'hospital_id\',\'hospital_name\'))
names.append((\'\',\'\'))
self.fields[\'hosp\'].choices = names
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。