Изменение faker в зависимости от значения FuzzyChoice

Я использую factory_bot и faker с Django.

Я хочу создать пользователя со случайным полом, а также именем, связанным с полом. (Конечно, имя не определяет пол).

Для этого я использую FuzzyChoices и factory.lazy_attribute.

from django.contrib.auth import get_user_model

import factory
from accounts.models import Gender
from factory import fuzzy
from faker import Faker


class UserFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = UserModel

    gender = fuzzy.FuzzyChoice([Gender.FEMALE, Gender.MALE])

    @factory.lazy_attribute
    def name(self):
        locale = "ja_JP"
        if self.gender == Gender.FEMALE:
            return Faker(locale).name_female()
        else:
            return Faker(locale).name_male()
Вход в полноэкранный режим Выйти из полноэкранного режима

Спасибо.

Оцените статью
Procodings.ru
Добавить комментарий