为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

眼眸繁星 2022-07-26 09:29:56
创建模型的第一个条目会引发错误我执行了以下命令进行迁移manage.py makemigrationsmanage.py migrate一切正常,在我发出这些命令在数据库中创建第一个“数据”之后manage.py shellfrom sms.models import Postfrom django.contrib.auth.models import Userpost_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 modelsfrom django.contrib.auth.models import UserTHE_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
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

您看到此错误是因为您试图将类对象分配给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)

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


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号