首页 > 解决方案 > “没有这样的列:id” Django AbstractUser 模型

问题描述

我正在尝试迁移并查看管理页面。makemigrations 和 migrate 都通过了,但是当我转到管理 url 时,它显示:“django.db.utils.OperationalError: no such column: social_app_user.id”

一旦我创建了一个 id 字段,它就会更改为“django.db.utils.OperationalError: no such column: social_app_user.password”

我的印象是 AbstractUser 模型包含所有默认用户字段,不确定主键,但无论如何。

请帮忙,谢谢!

注意:这个 models.py 文件中的 'id' 字段是在我收到错误后添加的。

from django.contrib.auth.models import AbstractUser, UserManager
from django.db import models

class User(AbstractUser):
    is_verified = models.BooleanField(default=True)
    id= models.AutoField(primary_key=True, null=False)
    REQUIRED_FIELDS = []

    objects =  UserManager()

    def __str__(self):
        f"{self.username} {self.email}"
        return


class main_feed(models.Model):
    content= models.CharField(unique=True, max_length=255, default='', null=False)
    poster = models.ForeignKey('User', related_name='author', on_delete=models.CASCADE, to_field='username')
    likes = models.IntegerField(default=0, null=False)
    favorites = models.IntegerField(default=0, null=False)
    date_posted = models.DateTimeField(auto_now=True)

    def __str__(self):
        f"{self.content} {self.likes} {self.poster} {self.date_posted}"
        return

标签: pythondjangodjango-modelsdjango-admin

解决方案


事实证明,我不得不重新启动整个应用程序并再次运行 startapp。这次我在第一次迁移之前添加了用户模型并设置了设置和管理文件。然后一切正常。但我不知道为什么会这样,迁移更新不应该覆盖默认用户模型吗?无论如何,这个问题现在已经回答了。


推荐阅读