【发布时间】:2015-05-03 17:54:17
【问题描述】:
我有模特
from django.contrib.auth.models import User
class ModelA(models.Model):
phone = models.CharField(max_length=20)
user = models.ForeignKey(User)
我需要将数据插入到这个模型中。我托管了一个端点,它为我提供了以下数据{'phone':XXXXXXXX, 'user_id':123}。
现在当我像这样将数据插入到这个模型中时
obj = ModelA.objects.create(phone=data['phone'], user = data['user_id]
它会抛出一个错误提示
Cannot assign "u'123'": "ModelA.user" must be a "User" instance.
同意,因为使用 django orm,您可以根据对象而不是数字进行交互。因此,我首先找到了 User 的对象,然后创建了 ModelA 对象。
user_obj = User.objects.get(id=data['id']
modelobj = ModelA.objects.create(phone=data['phone'], user = user_obj
到这里为止一切正常。
现在,我的问题是有没有其他方法可以直接使用user_id 而不是User 对象来分配/创建ModelA 对象,因为它首先涉及查询用户模型然后插入。这就像对创建的每个 ModelA 对象进行额外的读取操作。
【问题讨论】:
标签: django django-models