我想测试我的视图在发送正确数据后是否重定向。问题是我使用的表单在初始化时需要参数。我有一种方法可以构建我稍后在测试中使用的响应。该方法适用于我的其他视图,但我无法使其适用于使用需要参数来初始化它们的表单的视图。
在我的 forms.py 中,我有:
class SupportIssueForm(forms.ModelForm):
class Meta:
model = SupportIssue
fields = ('user', 'property', 'title', 'text', 'is_urgent', 'is_service')
def __init__(self, person_company, properties, is_property, *args, **kwargs):
super(SupportIssueForm, self).__init__(*args, **kwargs)
self.fields['is_service'].widget.attrs['class'] = 'custom-control-input'
...
我稍后在测试中使用的生成响应的方法如下所示:
def generate_logged_in_user_post_response(self, data):
request = self.factory.post(self.url, data={**self.form_class_args[0], **data})
request.user = self.logged_in_user
return new_support_issue_view(request)
我也试过这个:
def generate_logged_in_user_post_response(self, data):
form = SupportIssueForm(**self.form_class_args[0], data=data)
request = self.factory.post(self.url, form)
request.user = self.logged_in_user
return new_support_issue_view(request)
这self.form_class_args[0]是我在其他地方声明的一些字典:
{
"person_company": person_company, # <query object>
"properties": properties, # <query object>
'is_property': False
}