gpt4 book ai didi

PostgreSQL 的 Django 错误

转载 作者:行者123 更新时间:2023-11-29 12:59:24 26 4
gpt4 key购买 nike

我试图用 PostgreSQL 作为我的数据库引擎来运行我的 Django 应用程序。部署后,我从模板加载器收到模板呈现错误。它适用于我使用 ModelChoiceField 创建的表单。

而且在迁移时我收到一条错误消息

django.db.utils.ProgrammingError: column "category_parent" cannot be cast automatically to type integer HINT: You might need to specify "USING category_parent::integer".

我认为从选择字段返回索引是导致问题的原因。是否可以毫不费力地解决这个问题。

这是该表单的类。

class CategoryForm(forms.ModelForm):

def __init__(self, *args, **kwargs):
super(CategoryForm, self).__init__(*args, **kwargs)
self.fields['category_parent'].required = False

category_parent = forms.ModelChoiceField(
queryset=Category.objects.all(), empty_label='None')
category_image = forms.ImageField()

class Meta:
model = Category
fields = ('category_name', 'category_code',)

我收到的模板错误的屏幕截图。

This is the error I'm getting on my page.

我的模型类相同

class Category(models.Model):
category_name = models.CharField(max_length=300)
category_code = models.CharField(max_length=100)
category_parent = models.ForeignKey('self', blank=True, null=True)
category_image = models.ImageField(upload_to='category')

def __str__(self):
return self.category_name

我的终端屏幕的错误截图

Terminal screen showing error on migration.

请帮忙。提前致谢。

最佳答案

旧的迁移导致了这个问题。

如果您不需要保留数据,请删除表并删除迁移文件夹。再次迁移。

如果你想保留你的数据,你需要要么

  • 为您的新列取一个不同的名称
  • 创建一个临时列以在转换期间保存数据

然后您需要一系列迁移

添加新(或临时)列的架构迁移显式移动数据的数据迁移,进行任何所需的转换(例如“A”-> 1)可能是模式迁移删除了您的临时列

引用:"cannot be cast to type integer" error

关于PostgreSQL 的 Django 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517903/

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