在for循环中创建对象

时间:2013-01-24 15:22:20

标签: python django

如何创建十个User个对象?

for i in range(11):
    i = User.objects.create(username = 'test125', email='test@mail.com', password='pass1')

username不是唯一的

3 个答案:

答案 0 :(得分:2)

您在username字段上有一个唯一约束,这意味着您不能拥有两个具有相同username的对象。试试这个:

for i in range(10):
    i = User.objects.create(username = 'testX%s' % i, email='test@mail.com', password='pass1')

答案 1 :(得分:1)

您遇到的问题是您修复了username值,因此您尝试创建10个具有相同名称的用户。

只需对用户名使用某种变体,例如username='testuser-{}'.format(i)

答案 2 :(得分:0)

您需要更改每条记录的名称。

您命名每个用户“test125”。尝试连接每个新记录的索引:

for i in range(11):
    i = User.objects.create(username = 'test%s' % i, email='test@mail.com', password='pass1')

您很可能需要对“电子邮件”列进行相同操作:

for i in range(11):
    i = User.objects.create(username = 'test%s' % i, email='test%s@mail.com' % i, password='pass1')

此外,将新对象分配给与索引相同的变量通常不是一个好主意。尝试不同于“我”的东西。