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})