这个问题在这里已经有答案:
Cannot assign must be a instance. Django(3个答案)
上个月关门了。
我有3种模式:用户,理发师和预订。在我的createBooking
视图中,我弄不清楚如何传递用户和理发师的ID。以下是我的代码:
这一观点:
def createBooking(request):
data = request.data
booking = Booking.objects.create(
barber_id = data['barberb_id'],
customer_id = data[ 'customer_id'],
timeslot = data['timeslot'],
)
serializer = BookingSerializer(booking, many=False)
return Response(serializer.data)
预订模式:
customer_id = models.ForeignKey(User, on_delete = models.CASCADE,)
barber_id = models.ForeignKey(Barber, on_delete = models.CASCADE)
timeslot = models.DateTimeField('appointment')
def __str__(self):
return f"{self.customer_id} {self.barber_id} {self.timeslot}"
使用当前代码,我得到错误Cannot assign "['customer_id']": "Booking.customer_id" must be a "User" instance.
2条答案
按热度按时间e5njpo681#
由于您已经在模型中将属性名称指定为barber_id和Customer_id,因此必须创建对象,如下所示。
尽管我们在末尾没有给出后缀
_id
,但是外键是用attribute_name
+_id
存储的。我们也可以在Django直接使用它。ogsagwnx2#
我们可以定义与用户相关的模型,如下所示,并尝试将用户示例传递给Customer_id。