在DjangoModelFactory中使用Django faker创建的克隆模型字段

2024-05-15 22:15:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Django Faker来生成ramdom数据,效果很好。你知道吗

我需要检查一个模型,在一个特殊情况下,两个字段responsiblecustomer是相同的。你知道吗

这是我的工厂课程:

class FirstQuoteRequest(DjangoModelFactory):

    label = Faker("sentence")
    description = Faker("sentences")
    customer = SubFactory(UserFactory)
    responsible = customer

通过键入responsible = customer,我想我应该添加一个customer值的克隆,但在本例中,它是返回一个ramdom值的函数的克隆,而这个值不是我想要的。你知道吗

我想到这样使用@post_generation

    @post_generation
    def responsible(self, create: bool, extracted: Sequence[Any], **kwargs):
        self.responsible = self.customer
        self.save()

但这会引发一个完整性错误。这是一种在客户和责任人之间实现平衡的方法吗?哪一个?你知道吗


Tags: 数据django模型self工厂情况customerpost
1条回答
网友
1楼 · 发布于 2024-05-15 22:15:18

问题来自于我的方法名,它不应该等于字段名。所以解决办法是:

class FirstQuoteRequest(DjangoModelFactory):

    label = Faker("sentence")
    description = Faker("sentences")
    customer = SubFactory(UserFactory)
    responsible = customer

    @post_generation
    def clone_customer(self, create: bool, extracted: Sequence[Any], **kwargs):
        self.responsible = self.customer
        self.save()

希望有帮助!你知道吗

相关问题 更多 >