无法在我的django模型中保存和实例化子类

时间:2016-09-23 08:23:14

标签: python django database django-models

好的,现在我改变了我的模型如下:

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()

我收到以下错误,无法理解原因。 感谢任何帮助,提前谢谢。

1 个答案:

答案 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()