0
我寫了一個測試案例:如何測試django模型表單?
class MyTestCreateFilter(TestCase):
def test_createfilter(self):
test_filter = Filter(user_profile_id= 3,
keyword = 'ca',
industry = 'it',
zip_code = '50002',
distance = 30,
creation_date = datetime.date.today(),
last_run_date = datetime.date.today()
)
test_filter_form = FilterForm(instance=test_filter)
self.assertEqual(test_filter_form.is_valid(), False)#without data
test_filter_form = FilterForm({'user_profile_id':3,'keyword': 'ca','industry':'it','zip_code':'50002','distance':30,'creation_date': datetime.date.today(),
'last_run_date': datetime.date.today() }, instance=test_filter)
print test_filter_form.is_valid()
給人錯誤:
DoesNotExist: UserProfile matching query does not exist.
這是我form.how編寫測試用例:
類FilterForm(forms.ModelForm ):
class Meta:
model=Filter
exclude=('user_profile','creation_date','last_run_date')
widgets = {
'zip_code': forms.TextInput(attrs={'placeholder': "e.g. 20708"}),
}
def clean(self):
user_profile = self.instance.user_profile
keyword = self.cleaned_data.get("keyword")
if Filter.objects.filter(user_profile=user_profile, keyword=keyword).exclude(id=self.instance.id).count() > 0:
msg = u"A filter with that keyword already exists!"
self._errors["keyword"] = self.error_class([msg])
return self.cleaned_data
當我測試的形式給出這個錯誤:
user_profile = self.instance.user_profile 文件「/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py 」行343,在得到
raise self.field.rel.to.DoesNotExist
DoesNotExist
如何解決呢?
這可能是[添加](http://stackoverflow.com/posts/31046998/edit)的模型,你的問題非常有用。以及完整的回溯。 – Evert
你檢查了我的答案嗎?如果它不適合你,請告訴我。如果它解決了您的問題,請考慮[接受答案](http://meta.stackoverflow.com/a/5235)。 – falsetru
no.it沒有爲我工作。同樣的錯誤 – susmitha