Django get_or_create在models.ForeignKey失败

时间:2014-01-29 22:59:35

标签: python django foreign-key-relationship

拥有一个包含两个类的模型

class Employee(models.Model):
    emp_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50)
    phone_number = models.CharField(max_length=20, unique=True)
    company = models.ForeignKey(Company, db_column='company_id')

class Company(models.Model):
    company_id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=150)
    phonenumber = models.CharField(max_length=20, unique=True)

在我的views.py中,我有一个接收帖子请求的方法,并使用get_or_create注册员工,如此

employee, created = Employee.objects.get_or_create(name=emp_name, phone_number=emp_phone_number,company_id=emp_company_id)
employee.save()

get_or_create会导致错误

Cannot resolve keyword 'company_id' into field. Choices are:name,phone_number,company

如何将company_id保存为参考密钥?

1 个答案:

答案 0 :(得分:1)

尝试:

company = Company.objects.get(id=company_id)

employee, created = Employee.objects.get_or_create(name=emp_name, phone_number=emp_phone_number,company=company)
employee.save()