TL; DR:
我不想使用@skipIfCustomUser
我该怎么办?
Django允许在settings.py
中定义自定义用户模型,并说我们应该使用get_user_model()
来引用当前(交换的)User
模型in the docs。< / p>
Forthermore,the docs很友善地说:
如果您正在编写与User模型交互的应用程序,则必须采取一些预防措施......
为了确保您的测试套件能够传递任何项目配置,
django.contrib.auth.tests.utils
定义了@skipIfCustomUser
装饰器。这个装饰器将导致跳过测试用例......
对我而言,期望越来越多的Django项目拥有自定义用户模型似乎是合理的,因此我希望能够再次测试我的应用程序这些项目。
但我怎么能这样做?
作为参考,这里全部都失败了:
def setUp(self):
from django.contrib.auth import get_user_model
User = get_user_model()
user = User.objects.create_user(
'test_username',
'test_username@example.com',
'da_password') # BAM!
如果用户模型未定义username
字段,则最后一行将失败。来自Django's own tests的CustomUser
示例就是这种情况。