簡體   English   中英

如何讓工廠在創建 model 時使用 `objects.create_user` 而不是 `objects.create`

[英]How to make factory use `objects.create_user` instead of `objects.create` when creating model

有沒有辦法讓工廠實例化實例使用Model.objects.create_user而不是Model.objects.create 似乎user_factory.create使用后者,這使得下面的代碼成功,即使用username是必填字段並且未通過。

@register
class UserFactory(factory.django.DjangoModelFactory):
    
    class Meta:
        model = User

@pytest.fixture
def new_user2(user_factory):
    return user_factory.create(first_name='abc')

您可以覆蓋 DjangoModelFactory 的DjangoModelFactory方法

class UserFactory(factory.django.DjangoModelFactory):

    class Meta:
        model = User

    @classmethod
    def _create(cls, model_class, *args, **kwargs):
        manager = cls._get_manager(model_class)
        return manager.create_user(*args, **kwargs)

您可以在此處找到有關此方法的文檔: https://factoryboy.readthedocs.io/en/stable/reference.html#factory.Factory._create

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM