好的,现在我改变了我的模型如下:
from django.contrib.auth.models import User
class Company(User):
company_name = models.CharField(max_length = 20)
class Employee(User):
pass
当我从pytho manage.py shell运行以下命令时:
u = Employee(first_name = 'john', last_name = 'smith', password = 'test', email = 'smith@gmail.com')
u.save()
e = Employee(user = u)
e.save()
我收到以下错误,无法理解原因。 感谢任何帮助,提前谢谢。
答案 0 :(得分:0)
写作时:
class x(y)
在Python中这意味着x扩展(继承自)y。
,而
班级员工(用户):
通
有点意义(员工是用户),这个
类公司(用户):
毫无意义(公司不是用户)。
如果您希望用户有权以公司身份登录,我建议您使用外键:
class Company(models.Model):
user_with_permissions_fk = models.ManyToManyField((User)
至于这段代码:
u =员工(first_name ='john',last_name ='smith',密码='test',email ='smith@gmail.com')
u.save()
e =员工(用户= u)
e.save()
请提供您的语法错误 - 或者 - 请考虑替换此代码:
new_records_to_insert = []
new_records_to_insert += Employee(first_name = 'john', last_name = 'smith', password = 'test', email = 'smith@gmail.com')
new_records_to_insert += Employee(first_name = 'john', last_name = 'smith', password = 'test', email = 'smith@gmail.com')
Employee.objects.bulk_create(new_records_to_insert)
# No need to .save()