gpt4 book ai didi

python - 表的 "id"列指定多个默认值

转载 作者:太空狗 更新时间:2023-10-30 02:44:05 24 4
gpt4 key购买 nike

我以前在笔记本电脑上运行我的网站,它的数据库是 Sqlite,最近我想将它转移到 DigitalOcean,并将它的数据库更改为 Postgresql,但是在迁移时遇到了一些问题。

python 3.4 Django 1.8

错误

django.db.utils.ProgrammingError: multiple default values specified for column "id" of table "profiles_userprofile"

我的模型

class UserProfile(models.Model):
user = models.OneToOneField(User)
avatar = models.ImageField(blank=True, upload_to=get_image_path, default='/static/image/avatar/male.png')
age = models.IntegerField(default=4, validators=[MinValueValidator(3), MaxValueValidator(99)])

我该怎么办?

最佳答案

尝试显式指定 id 字段并将其标记为主键:

class UserProfile(models.Model):
id = models.BigIntegerField(primary_key = True)
user = models.OneToOneField(User)
avatar = models.ImageField(blank=True, upload_to=get_image_path, default='/static/image/avatar/male.png')
age = models.IntegerField(default=4, validators=[MinValueValidator(3), MaxValueValidator(99)])

Django 应该自动为这个字段创建一个序列。

可能是没有明确定义主键的 User 外键混淆了 ORM,尽管这只是一种理论。

关于python - 表的 "id"列指定多个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964936/

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