我如何在Django模型上测试外键对象?

问题描述 投票:0回答:1

在我的模型(主页)中,有以下字段。

class Home(TitleSlugDescriptionModel):
    seller= models.ForeignKey("data.seller", null=True, on_delete=models.SET_NULL)
    date = models.DateField()
    picture = models.ImageField(upload_to="images")

data.seller不同型号的首页。我有models.py(数据)

class Data(models.Model):
    name = models.CharField(max_length=255)
    images = models.ImageField()

class Seller(models.Model):
    name = models.CharField(max_length=255)
    data= models.ForeignKey(Data, on_delete=models.SET_NULL, null=True)

在我的test.py

class HomeTestCase(TestCase):
    def test_random(self):
        with open("img/no-image.jpg", "rb") as f:
           for home in range(10):
            G(Home, picture=ImageFile(f), seller=F(name="test1"),

我在测试时遇到问题。它警告:

django_dynamic_fixture.ddf.InvalidConfigurationError: ('homes.models.Home.seller', BadDataError('data.models.Seller', ValidationError({'data': ['This field cannot be blank.']})))

我知道此字段不能为空,并且我解决了以下问题。 [添加名称数据]

class HomeTestCase(TestCase):
    def test_random(self):
       with open("img/no-image.jpg", "rb") as f:
          for home in range(10):
            G(Home, picture=ImageFile(f), seller=F(name="test1"), data=F(name="test2")

它不起作用并提醒您

django_dynamic_fixture.ddf.InvalidConfigurationError: Field "data" does not exist.

我不知道如何解决。有人可以推荐我吗?

非常感谢

python django unit-testing testing django-testing
1个回答
0
投票

重命名您的字段,您有date字段而不是data

© www.soinside.com 2019 - 2024. All rights reserved.