Python 将Django Allauth设置为外键
我正在使用Django构建一个在线电子商务。我想让我的用户使用社交媒体(如Facebook和谷歌)登录。我已经用Django Allauth完成了。 但问题是,在下订单时,我如何使其成为外键 这是我到目前为止的代码 视图.pyPython 将Django Allauth设置为外键,python,django,Python,Django,我正在使用Django构建一个在线电子商务。我想让我的用户使用社交媒体(如Facebook和谷歌)登录。我已经用Django Allauth完成了。 但问题是,在下订单时,我如何使其成为外键 这是我到目前为止的代码 视图.py from django.db import models from django.contrib.auth import get_user_model from products.models import Products User = get_user_mode
from django.db import models
from django.contrib.auth import get_user_model
from products.models import Products
User = get_user_model()
class Cart(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE, verbose_name = 'Customer')
item = models.ForeignKey(Products, on_delete = models.CASCADE, verbose_name = 'Item')
quantity = models.IntegerField(default=1)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.quantity} of {self.item.title}'
def get_total(self):
return self.item.price * self.quantity
class Meta:
db_table = 'cart'
class Order(models.Model):
orderitems = models.ManyToManyField(Cart)
user = models.ForeignKey(User, on_delete=models.CASCADE)
ordered = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.user.username
def get_totals(self):
total = 0
for order_item in self.orderitems.all():
total += order_item.get_total()
return total
将项目添加到购物车时出现错误。那么我该怎么做呢?不管用户是使用默认的django身份验证还是他们的第三方帐户,比如facebook和google,都会起作用