gpt4 book ai didi

python - 完整性错误: may not be NULL

转载 作者:行者123 更新时间:2023-12-01 05:09:23 26 4
gpt4 key购买 nike

我正在为此抓狂。当我尝试从管理页面添加“产品”时,收到 IntegrityError:main_product.img 可能不为 NULL。

模型.py

class Product(models.Model):
name = models.CharField(max_length=500)
short = models.CharField(max_length=250)
description = models.TextField()
price = models.DecimalField(max_digits=8, decimal_places=2)
in_stock = models.BooleanField()

def __unicode__(self):
return self.name

class ProductImages(models.Model):
product = models.ForeignKey(Product, blank=True)
img = models.ImageField(upload_to='images', blank=True)
caption = models.CharField(max_length=300, blank=True)

class ProductFeatures(models.Model):
product = models.ForeignKey(Product)
feature = models.CharField(max_length=500)

管理.py

class ProductFeaturesAdmin(admin.TabularInline):
model = ProductFeatures
extra = 1

class ProductImageAdmin(admin.TabularInline):
model = ProductImages
extra = 1

class ProductAdmin(admin.ModelAdmin):
list_display = ('name', 'price', 'in_stock')
inlines = [ProductFeaturesAdmin, ProductImageAdmin]
admin.site.register(Product,ProductAdmin)

我在上传时使用 Pillow 调整图像大小,因此我的 ProductImages 模型中有一个自定义 save() 函数。我认为这是问题所在,但它仍然不起作用。正如您所见,我对 Django 和 Python 非常陌生。感谢任何和所有帮助。

编辑:忘记提及我已将blank=true 和 null=true 添加到Product.img,然后使用South 迁移表。

编辑 2:这是我的新 ProductImages 模型。

class ProductImages(models.Model):
product = models.ForeignKey(Product)
img = models.ImageField(upload_to='images', blank=True, null=True)
caption = models.CharField(max_length=300, blank=True)

我使用 South 并运行:

python manage.py schemamigration main --auto
python manage.py migrate main

仍然有错误。如果我要将 img 字段添加到我的产品模型中,我如何才能在管理面板中添加多个 img?

最佳答案

实际上你需要在img字段中添加null=True,所以将其设为img = models.ImageField(upload_to='images', Blank=True, null=True)。不同之处在于,因为 blank=True 决定了表单是否需要这些字段。 blank=False 表示该字段不能为空,blank=True 表示该字段不需要。关于 null=True 在数据库列中设置 NULL 这将解决您的问题。

关于python - 完整性错误: may not be NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24501397/

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