【问题标题】:ProgrammingError at column "" does not exist列“”的编程错误不存在
【发布时间】:2022-07-08 05:54:05
【问题描述】:

我向 djangos 用户模型添加了一个自定义扩展,现在我收到此错误:

     return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: column users_account.birthday does not exist
LINE 1: ... "users_account"."id", "users_account"."user_id", "users_acc...
                                                             ^

它仅在我尝试编辑现有用户或创建新用户时出现。

models.py:

class Account(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    birthday = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.user

admin.py:

class AccountInline(admin.StackedInline):
    model = Account
    can_delete = False
    verbose_name_plural = 'Accounts'

class CustomUserAdmin(UserAdmin):
    inlines = (AccountInline,)

admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)

我最初的猜测是错误是由于我现有的用户没有生日,但这并不能解释为什么我不能创建新用户。这让我觉得我不知道实际的问题是什么。

我对 django/SQl 很陌生,所以我并不真正理解错误本身。任何帮助都将不胜感激。

【问题讨论】:

    标签: django django-models django-admin django-users django-postgresql


    【解决方案1】:

    你忘了:

    python manage.py makemigrations
    # and/or
    python manage.py migrate
    

    PS 你可能想要DateField 而不是DateTimeField 用于生日存储:)

    【讨论】:

      猜你喜欢
      • 2016-01-19
      • 2019-08-05
      • 2017-02-16
      • 1970-01-01
      • 2021-06-10
      • 2015-06-01
      • 1970-01-01
      • 2021-10-26
      • 2017-05-30
      相关资源
      最近更新 更多