Django将数据从数据库设置到字段中
我试图用数据库中的值填充两个Django将数据从数据库设置到字段中,django,webforms,django-views,Django,Webforms,Django Views,我试图用数据库中的值填充两个字段,并使用默认的django表单 我试着用query设置它,但它在启动时会得到值,并且在值被id DB更改后不会从DB获取值 我的表格如下所示: s_size = forms.IntegerField(initial=Sizes.objects.get(id=1).small) m_size = forms.IntegerField(initial=Sizes.objects.get(id=1).medium) 任何帮助都将不胜感激。您需要为每个请求重新创建表单类
字段,并使用默认的django表单
我试着用query设置它,但它在启动时会得到值,并且在值被id DB更改后不会从DB获取值
我的表格如下所示:
s_size = forms.IntegerField(initial=Sizes.objects.get(id=1).small)
m_size = forms.IntegerField(initial=Sizes.objects.get(id=1).medium)
任何帮助都将不胜感激。您需要为每个请求重新创建表单类
def my_form_factory():
class my_form(forms.Form):
s_size = forms.IntegerField(initial=Sizes.objects.get(id=1).small)
m_size = forms.IntegerField(initial=Sizes.objects.get(id=1).medium)
...
return my_form()
def my_view(request):
form=my_form_factory()
其他解决方案-通过self.fields字典更新表单的\uuu init\uuu()
方法中的表单字段:
class my_form(forms.Form):
__init__(*args, **kwargs):
super(my_form, self).__init__(*args, **kwargs)
self.fields['s_size']=forms.IntegerField(initial=Sizes.objects.get(id=1).small)
self.fields['m_size']=forms.IntegerField(initial=Sizes.objects.get(id=1).medium)
您应该从视图中传入初始数据,如下所述:
这是django模型的表格吗?因为
ModelForms
会处理这类事情。无论哪种方式,你都可以展示更多的表单(比如你是如何从DB初始化值的)哦,我明白你的意思了。。谢谢。
class MyForm(forms.Form):
s_size = forms.IntegerField(i)
m_size = forms.IntegerField()
def my_view(request):
s_size_value = Sizes.objects.get(id=1).small
m_size_value = Sizes.objects.get(id=1).medium
form = MyForm(initial={'s_size': s_size_value, 'm_size': m_size_value})