Python Django get_或_create在模型上失败。ForeignKey失败
有一个有两个类的模型Python Django get_或_create在模型上失败。ForeignKey失败,python,django,foreign-key-relationship,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='co
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)
在my views.py中,我有一个方法可以接收post请求,并使用get\u或\u create
注册员工,就像这样
employee, created = Employee.objects.get_or_create(name=emp_name, phone_number=emp_phone_number,company_id=emp_company_id)
employee.save()
但是get\u或\u create
会导致错误
Cannot resolve keyword 'company_id' into field. Choices are:name,phone_number,company
如何将公司id保存为参考密钥?尝试:
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()
您是否尝试过
employee,created=employee.objects.get\u或\u create(name=emp\u name,phone\u number=emp\u phone\u number,company=emp\u company\u id)
?是的,即使emp_company_id是一个整数。我不能保证这是正确的,但我记得是这样的。@AndrewGorcester,不,它不起作用得到错误ValueError:无法分配“u'70'”:“Employee.company”必须是“company”实例。
所以我按照@kviktor的建议放置了一个完整的对象company=company,但随后我得到了错误ValueError:cannotassign“[”:“Employee.company”必须是“company”实例。
???