Python 将Django Allauth设置为外键

Python 将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

我正在使用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_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,都会起作用