Django使用ForeignKey进行单元测试

Sardathrion-防止SE滥用

我有一个ModelForm包含一些ForeignKey对User对象说的东西,但是可能对任何其他模型来说都是这样。我有此表单的单元测试类,但是当我尝试传递数据时,出现Select a valid choice. That choice is not one of the available choices错误。测试看起来像这样:

class Monkey(Model):
    user = models.ForeignKey(User)
    ...

class MyForm(ModelForm):
    class Meta:
        model = Monkey
        fields = ['user', ...]

def test_my_form_with_a_user(self):
    ...
    data = {'user': User.objects.get(pk=1), ... } #  Nope.
    data = {'user': [u'1'], ... } #  Nope.
    data = {'user': [u'JaneDoe'], ... } #  Nope.
    form = MyForm(data, ...)
    self.assertTrue(form.is_valid(), form.errors)
    ...

我尝试了任何数量的排列,user但是却遇到了相同的错误。

我想念什么?

帕特里克·比森

您应该可以使用以下方法为测试中的用户字段分配一个值:

def test_my_form_with_a_user(self):
    user_pk = User.objects.get(pk=1).pk
    data = {'user': user_pk}
    ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用HTTPResponseRedirect对django消息进行单元测试?

来自分类Dev

使用模拟库对Django CreateView进行单元测试

来自分类Dev

使用实体框架进行单元测试的单元测试

来自分类Dev

使用Google测试进行单元测试

来自分类Dev

如何对Django URL进行单元测试?

来自分类Dev

如何对Django模型进行单元测试?

来自分类Dev

对使用RTOS的项目进行单元测试

来自分类Dev

使用Shim for ZipFile进行单元测试

来自分类Dev

使用NSURLSession进行单元测试

来自分类Dev

使用ReSharper进行AngularJS单元测试

来自分类Dev

使用ReSharper进行AngularJS单元测试

来自分类Dev

使用StaticLoggerBinder对类进行单元测试

来自分类Dev

使用PostSharp进行正确的单元测试

来自分类Dev

使用RouteAttribute对ApiController进行单元测试

来自分类Dev

使用Automake进行单元测试

来自分类Dev

使用Jasmine进行单元测试$ modal

来自分类Dev

使用sinon框架进行单元测试

来自分类Dev

使用Microsoft EntityFramework进行单元测试

来自分类Dev

使用MockServletContext进行单元测试

来自分类Dev

使用Azure DocumentDB进行单元测试

来自分类Dev

使用Firebase进行单元测试

来自分类Dev

使用Mockito进行单元测试LazyLogging

来自分类Dev

使用boost :: multiprecision进行单元测试

来自分类Dev

使用Mockito对POJO进行单元测试

来自分类Dev

使用ReSharper进行AngularJS单元测试

来自分类Dev

对使用$ resource的服务进行单元测试

来自分类Dev

使用sinon框架进行单元测试

来自分类Dev

使用Moq进行单元测试

来自分类Dev

使用 MockEndPointsandSkip 进行 Camel 单元测试