猿问

无法分配“<class 'django.contrib.auth.models.User'>”:

创建模型的第一个条目会引发错误


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


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.

模型.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


眼眸繁星
浏览 120回答 1
1回答

PIPIONE

您看到此错误是因为您试图将类对象分配给author属性。但它假设是用户实例。所以你应该首先创建用户记录并使用它,而不是这样:user&nbsp;=&nbsp;User.objects.create_user(username="name",&nbsp;email="email@mail.com",&nbsp;password="Pass12345")post_1&nbsp;=&nbsp;Post(name="testname",&nbsp;email="testemail",&nbsp;gender="Monsieur",&nbsp;number="23233",&nbsp;author=user)您可以将模型类视为数据库表。而模型实例代表该表中的记录。
随时随地看视频慕课网APP

相关分类

Python
我要回答