": "Model.user"必须是 "User"实例-6ren"> ": "Model.user"必须是 "User"实例-创建模型的第一个条目会抛出错误 我执行了以下命令进行迁移 manage.py makemigrations manage.py migrate 在我执行这些命令以在数据库中创建第一个“数据”之后,一切-6ren">
gpt4 book ai didi

python - 无法分配 "": "Model.user"必须是 "User"实例

转载 作者:行者123 更新时间:2023-12-05 01:13:27 27 4
gpt4 key购买 nike

创建模型的第一个条目会抛出错误

我执行了以下命令进行迁移

manage.py makemigrations
manage.py migrate

在我执行这些命令以在数据库中创建第一个“数据”之后,一切正常

manage.py shell
from sms.models import Post
from django.contrib.auth.models import User
post_1 = Post(name="testname", email="testemail", gender="Monsieur", number="23233", author=User)

它给了我这个错误:

ValueError: Cannot assign "<class 'django.contrib.auth.models.User'>": "Post.author" must be a "User" instance.

models.py 文件

from django.db import models
from django.contrib.auth.models import User

THE_GENDER = [
("Monsieur", "Monsieur"),
("Madame", "Madame")
]


class Post(models.Model):


name = models.CharField(max_length=100)
email = models.CharField(max_length=100)
gender = models.CharField(max_length=8, choices=THE_GENDER)
number = models.CharField(max_length=100)
author = models.ForeignKey(User, on_delete=models.CASCADE)

def __str__(self):
return self.name


最佳答案

您看到此错误是因为您尝试将类对象分配给 author 属性。但它假设是用户实例。所以你应该先创建用户记录并使用它,而不是这样:

user = User.objects.create_user(username="name", email="email@mail.com", password="Pass12345")
post_1 = Post(name="testname", email="testemail", gender="Monsieur", number="23233", author=user)

您可以将模型类视为数据库表。而模型实例代表该表中的记录。

关于python - 无法分配 "<class ' django.contrib.auth.models.User' >": "Model.user"必须是 "User"实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com