我正在尝试创建一个管理员用户作为我的tests.py的一部分来检查持久性.
更新:tests.py是子类TestCase的标准格式,下面的代码在setUp()函数中调用.
我可以创建普通用户但不能创建管理员用户.如果我试试这个:
self.adminuser = User.objects.create_user('admin', 'admin@test.com', 'pass')
self.adminuser.save()
self.adminuser.is_staff = True
self.adminuser.save()
Run Code Online (Sandbox Code Playgroud)
或者self.adminuser = User.objects.create_superuser('admin','admin @ test.com','pass')self.adminuser.save()
我明白了:
Warning: Data truncated for column 'name' at row 1
Run Code Online (Sandbox Code Playgroud)
如果我删除is_staff行一切都很好(除了我不能做我的测试!)
我是否必须将管理员用户作为固定装置加载?
UserProfile定义如下:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
organisation = models.ForeignKey(Organisation, null=True, blank=True)
telephone = models.CharField(max_length=20, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
和完整错误回溯是:
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/test/testcases.py", line 242, in __call__
self._pre_setup()
File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/test/testcases.py", line 217, in _pre_setup
self._fixture_setup()
File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/test/testcases.py", line 440, in _fixture_setup
return super(TestCase, self)._fixture_setup()
File "/usr/lib/python2.4/site-packages/Django-1.1.1-py2.4.egg/django/test/testcases.py", line 222, …Run Code Online (Sandbox Code Playgroud)