当前位置: 首页 > 面试题库 >

为表格的“ id”列指定了多个默认值

谭刚毅
2023-03-14
问题内容

我曾经在笔记本电脑上运行我的网站,它的数据库是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感到困惑。



 类似资料:
  • 像这样: 我该怎么办?

  • 问题内容: 有没有一种方法可以指定与struct一起使用的默认dtype ? 我特别想成为和成为。相反,我得到和 问题答案: 默认值取决于您的系统。在64位系统上,默认类型为64位。在32位系统上,默认类型为32位。无法使用其他系统C标头更改默认值,即重新编译numpy。 您当然可以明确指定dtype,例如 编辑:正如kazemakase在下面提到的,以上内容仅适用于int32 / int64。在

  • 问题内容: 我有一个包含三个提交按钮的表单,如下所示: 按钮行混合了提交,重置和JavaScript按钮。按钮的顺序可能会更改,但是在任何情况下,保存按钮都将保留 在上一个和下一个按钮之间。 这里的问题是,当用户点击Enter提交表单时,帖子变量“ COMMAND”包含“ Prev”;正常,因为这是表单上的第一个提交按钮。但是,我希望在用户通过Enter按钮提交表单时触发“下一步” 按钮。这有点像

  • 问题内容: SELECT TOP(20) * FROM (SELECT * FROM [3D_Benchmarks] JOIN [3D_Slugs] ON [3D_Benchmarks].Id = [3D_Slugs].BenchmarkId) AS tb ORDER BY tb.FPS DESC; 我收到此错误: 为“ tb”多次指定了“ Id”列。 问题答案: 代替使用或。

  • 问题内容: 考虑程序的三个不同的运行: 是否可以在第一种情况下,第二种情况下,第三种情况下使用? 问题答案: 带有参数的参数可以很好地处理此三向输入。 我也可以给它一个参数。 如何使用argparse在python中添加多个参数选项?

  • 本文向大家介绍MVC设定默认路由为指定的Area下的某个action,包括了MVC设定默认路由为指定的Area下的某个action的使用技巧和注意事项,需要的朋友参考一下 MVC中,一般的情况下,使用IDE工具帮我们生成的代码,在路由注册的时候: 默认给的路由地图 我们在default:中去配置 默认是又那个控制器返回action。 这样形如:http://localhost:1450/ 这样,会

  • 本文向大家介绍JS函数多个参数默认值指定方法分析,包括了JS函数多个参数默认值指定方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS函数多个参数默认值指定方法。分享给大家供大家参考,具体如下: 函数有一个参数时,以往这样定义(参数为p1): 当需要为p1设定一个默认值时 当函数需要2个参数时,以前习惯这样写 后来发现完全不需要这样写,js函数甚至不需要在括弧内预设参数名,可以用一

  • 我想把剑道下拉列表加入我的表格。一切都会好的,除了一件事。当我想用默认的剑道创建工具栏“添加记录”时,我不能绑定从dropdownlist数据源获取的第一个值。 数据源工作正常。DropDownlist也很好用。如果我手动从dropDownlist中选择任何东西,一切正常。 我也试过了。除了“索引”之外,我试图手动从数据源中选择第一项。从视觉上看,它工作得很好。即使选择了第三项,但当我单击“更新”