【发布时间】:2021-05-14 22:11:30
【问题描述】:
我的UserTrust 模型和django.contrib.auth.models.User 之间有一个OneToOneField,我想在新的User 注册时创建它。我想过使用user_signed_up 信号创建UserTrust 实例。
我的AppConfig中有以下代码
def ready(self):
# importing model classes
from .models import UserTrust
@receiver(user_signed_up)
def create_usertrust(sender, **kwargs):
u = kwargs['user']
UserTrust.objects.create(user=u)
...这是在我的 pytest 测试中
@pytest.fixture
def test_password():
return 'strong-test-pass'
@pytest.fixture
def create_user(db, django_user_model, test_password):
def make_user(**kwargs):
kwargs['password'] = test_password
if 'username' not in kwargs:
kwargs['username'] = str(uuid.uuid4())
return django_user_model.objects.create_user(**kwargs)
return make_user
@pytest.mark.django_db
def test_my_user(create_user):
user = create_user()
assert user.usertrust.available == 1000
不过,测试还是失败了
django.contrib.auth.models.User.usertrust.RelatedObjectDoesNotExist:用户没有用户信任。
我错过了什么?
【问题讨论】:
标签: django django-allauth pytest-django