没有为用户 table 创建模型。订单 table 是强制性的吗?

Did not create model for user table. is it mandatory for order table?

我是 django 的新手,正在做我的第一个外卖网站。我没有为用户身份验证 table 创建任何模型,但为我的菜单 table 创建了模型。现在我想为订单 table 创建一个模型,我想在其中将菜单 ID 和用户 ID 都保留为外键。是否有可能,或者我也必须为用户 table 创建一个模型?

django 已经为您准备好用户模型,您可以按如下方式使用它:

#first import the user model
from django.contrib.auth.models import User

# then add it as a ForeignKey
class Order(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    menu = models.ForeignKey(Menu,on_delete=models.CASCADE)

您好,欢迎来到 Stack OverFlow。

如果您正在开始一个新项目,最好继承AbstractUser并使用自定义用户模型。这样可以更轻松地自定义用户模型,例如添加字段、方法、自定义 Django 管理等。

完整参考:https://docs.djangoproject.com/en/4.0/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project

为此,您必须创建自定义用户模型并将 AUTH_USER_MODEL 指向该模型。

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    pass

然后在settings.py (假设用户模型在 user_app app:

AUTH_USER_MODEL="user_app.user"