我有以下问题。
通常在基于Django Class的视图中,get_form_kwargs
方法用于为表单__init__()
提供kwarg。例如:
class ComponentForm(forms.ModelForm):
diameter = forms.ModelChoiceField(queryset=Diameter.objects.all(), label='Diameter') # required=True,
class Meta:
model = Component
fields = [
'component_type',
'diameter',
'length'
]
def __init__(self, *args, **kwargs):
circuit = kwargs.pop('circuit')
project = kwargs.pop('project')
super(ComponentForm, self).__init__(*args, **kwargs)
self.fields['diameter'].queryset = Diameter.objects.filter(project=project, material = circuit.material_type)
在上面的示例代码中,“电路”和“项目”由相应视图中的get_form_kwargs方法提供。
现在的问题是如何使用基于函数的视图将这些kwargs传递给ComponentForm __init__()
?
答案 0 :(得分:0)
好吧,您只需通过它们即可。
form = ComponentForm(circuit=whatever, project=whatever)
答案 1 :(得分:0)
两种方式。
直接在构造函数调用中指定
。<script type="text/javascript">
if(screen.width <= 720)
{
location.href = "indexm.php"; // redirection
}
else
{
location.href = "index.php"; // redirection
}
</script>
或者构建字典并使用** kwargs语法将其传递给我-我发现在动态添加属性以及使用继承时(例如对super()的调用),这很有用。 init ( ))。
form = ComponentForm(keyword_arg1=value1, keyword_args2=value2)