pip install factory_boy
python
INSTALLED_APPS = [
...
'factory',
...
]
python
from factory import Faker
from factory.django import DjangoModelFactory
from myapp.models import User
class UserFactory(DjangoModelFactory):
class Meta:
model = User
username = Faker('user_name')
email = Faker('email')
password = 'password123'
is_active = True
python
def test_create_user():
user = UserFactory.create()
assert User.objects.filter(username=user.username).exists()
python
class UserProfileFactory(DjangoModelFactory):
class Meta:
model = UserProfile
phone_number = Faker('phone_number')
address = Faker('address')
python
class PostFactory(DjangoModelFactory):
class Meta:
model = Post
title = Faker('sentence')
class CategoryFactory(DjangoModelFactory):
class Meta:
model = Category
name = Faker('word')
python
class UserFactory(DjangoModelFactory):
class Meta:
model = User
username = Faker('user_name')
email = Faker('email')
password = 'password123'
is_active = True
@factory.lazy_attribute
def full_name(self):
return f'{self.first_name} {self.last_name}'