我在django的一家网上商店工作。
我将order模型与cart模型通过ForeignKey连接起来,并通过ForeignKey与products模型进一步链接。
models.py
class products(models.Model):
image = models.ImageField(upload_to='products/')
name = models.CharField(max_length=50)
slug = models.SlugField(blank=True, unique=True)
title = models.CharField(max_length=50)
price = models.FloatField()
def __str__(self):
return self.name
class cart(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
item = models.ForeignKey(products, on_delete=models.CASCADE) ###
slug = models.CharField(max_length=50, default='#')
quantity = models.IntegerField(default=1)
created_on = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.quantity} of {self.item.name}'
def get_total(self):
total = self.item.price * self.quantity
floattotal = float("{0:.2f}".format(total))
return floattotal
class order(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
item = models.ForeignKey(cart, on_delete=models.CASCADE) ###
slug = models.SlugField()
quantity = models.IntegerField()
created_on = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.quantity} of {self.item.item__name}'我想将order的对象创建为:
def order_view(request, slug):
cart_qs = cart.objects.filter(user=request.user, slug=slug)
cart_item = cart_qs[0]
order.objects.create(user=request.user, item=cart_item.item.name, slug=slug, quantity=cart_item.quantity) ####它会引发错误,因为:
Cannot assign "'The latest one'": "order.item" must be a "cart" instance.为什么会出现此错误,以及如何解决此问题?
发布于 2020-05-04 08:01:55
您正在尝试在Order实例创建中分配字符串,其中它期望有一个Cart实例。在此引发的错误:
item=cart_item.item.name它应该是简单的:
item=cart_item,因为您的模型模式预期如下:
item = models.ForeignKey(cart, on_delete=models.CASCADE) ###https://stackoverflow.com/questions/61587100
复制相似问题