今天在项目中遇到一个问题,有个django增删改查的模板页面,其中的编辑页面使用自定的form来构建的显示内容。 表单的数据时从数据库中查询出来展示的,当修改数据库的内容后,form的展示的信息并没有修改。当重启后,form的数据重新加载。 查了许多资料,都没有对form表单数据的加载时间的解答。
从现象来看,form的数据的加载时在服务启动时,就加载了。代码如下:
view.py
def testform(req):
form = testForms.testForm()
print '>>>',form
return render_to_response("test.html",{'form':form})
urls.py
#form测试
url(r'^test/form/$','manager.makoViews.testform'),
models.py
from django import forms
import models
class testForm(forms.Form):
device_types = models.Role.objects.all().values_list('id','name')
name = forms.CharField(widget=forms.widgets.Select(choices=device_types))
html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table>
{{form}}
</table>
</body>
</html>
问题解决:
今天在django群里遇到一个哥们问题form中select值怎么写的问题,我给了个答案。
name = forms.CharField(widget=forms.widgets.Select(choices=device_types))
然后,他说这样写不能及时更新值,继续求教。得到
name2= forms.ModelChoiceField(label=u'name2',queryset=models.Role.objects.all(),to_field_name="id")
瞬间解决了我的大问题,再次谢谢那位哥们。
默认情况下,在页面中生成的select的 option的value是queryset的key,而值是queryset模型中的__unicode__方法返回的值。
--- 2015-06-19 13:41 记录
--- 水平有限,个人记录,仅供备查。