Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中,如何在视图代码中指定字段是否为必填字段?_Django_Validation_Django Views - Fatal编程技术网

在Django中,如何在视图代码中指定字段是否为必填字段?

在Django中,如何在视图代码中指定字段是否为必填字段?,django,validation,django-views,Django,Validation,Django Views,我在模型(和表单)中有一个字段,它并不总是强制的,而是来自某些屏幕 我目前正在使用modelform\u factory将模型快速转换为表单;我可以指定何时必须使用此方法,或者如果不是,最好的方法是什么吗?我猜您是在谈论表单?您正在将ModelForm用于此特定模型?如果是这样,您可以这样做: class My_Form(ModelForm): your_model_field = forms.CharField(required=True) 如果您不是在谈论表单,请更加具体并包含代

我在模型(和表单)中有一个字段,它并不总是强制的,而是来自某些屏幕


我目前正在使用
modelform\u factory
将模型快速转换为表单;我可以指定何时必须使用此方法,或者如果不是,最好的方法是什么吗?

我猜您是在谈论表单?您正在将ModelForm用于此特定模型?如果是这样,您可以这样做:

class My_Form(ModelForm):

    your_model_field = forms.CharField(required=True)
如果您不是在谈论表单,请更加具体并包含代码

编辑:

你能在你的问题中使用代码吗?否则,请告诉我为什么
modelform\u factory
比使用
modelform
更适合您的情况。
modelform\u factory
函数返回一个
modelform
类,请参见此处:


此外,我不确定您是否可以只使用
modelform\u factory
来做您想做的事情,因为它用于简单的
modelform
,而无需进行大量定制。这里有更多细节:

啊,好的,这很有道理,谢谢。我正在使用
modelform\u-factory
-让我更新这个问题。我想你已经回答了这个问题:)你是说我很遗憾需要从使用非常简洁的
modelform\u-factory
语法过渡到创建一个新类。我只是希望它不必像那样冗长。对不起,我知道您已经回答了这个问题,但该字段是
django.contrib.auth.models.User
对象的外键。如何在
ModelForm
中指定?您应该使用并传递查询集。还有另一种方法:在
Model
上强制使用该字段,然后选择是否在
ModelForm\u工厂中使用该字段。当结果发回时,对其执行
form.save(commit=False)
,如果我没有在屏幕上显示该字段,则以编程方式添加其值。我喜欢这一点(目前),因为我可以在不创建单独的
ModelForm
的情况下指定所有内容。