【发布时间】:2020-01-19 15:37:26
【问题描述】:
我正在尝试在 Django 管理站点中编辑我的一个对象的字段,我的模型中也有一个 Cloudinary 图像字段。问题是,每当我尝试对我的对象的 CharFields 之一进行编辑时,我都会收到错误消息:
value too long for type character varying(100)
我后来发现,每次我完成编辑并尝试保存时,它都会寻找一个新图像来替换我的imagefile 的当前图像,即使我没有触摸我的imagefile,因此它返回一个空的图像 URL 字符串,如下所示:
但当前图片 URL 工作正常,点击时显示如下:
我只是想知道我是否做错了什么,为什么每次点击保存时它都会寻找新的图片 URL?
这是我的models.py 文件:
from django.db import models
from cloudinary.models import CloudinaryField
class profiles(models.Model):
firstname = models.CharField(max_length=120, default = 'null') #max_length=120
lastname = models.CharField(max_length=120, default = 'null')
gender = models.CharField(max_length=120, default = 'null')
dob = models.CharField(max_length=120, default = 'null')
callNumber = models.CharField(max_length=120, default = 'null')
whatsappNumber = models.CharField(max_length=120, default = 'null')
ministry = models.CharField(max_length=120, default = 'null')
centre = models.CharField(max_length=120, default = 'null')
campus = models.CharField(max_length=120, default = 'null')
hostel_address = models.CharField(max_length=120, default = 'null')
city = models.CharField(max_length=120, default = 'null')
qualification = models.CharField(max_length=120, default = 'null')
profession = models.CharField(max_length=120, default = 'null')
maritalStatus = models.CharField(max_length=120, default = 'null')
bacenta = models.CharField(max_length=120, default = 'null')
layschool = models.CharField(max_length=120, default = 'null')
imagefile = CloudinaryField('image', max_length=512, null=False, default =
'https://res.cloudinary.com/firslovetema/image/upload/v1566807474/h1psyutzptxlnhuk8uyr.png')
def __str__(self):
return str(self.imagefile)
这是我之前的问题的后续问题,可以在这里找到:
【问题讨论】:
-
您确定您已生成并应用迁移来创建
imagefile字段吗? Cloudinary 库 hard-codedmax_lengthto 255,因此 (a) 您的max_length=512不执行任何操作,并且 (b) 您不应该在该字段上看到有关VARCHAR(100)的错误。请记住,您只需要在本地makemigrations,但在提交迁移文件后,您必须在 Heroku 上migrate。 -
@Chris 好的,我如何在 Heroku 上迁移?
-
您可能至少已经这样做了一次,因为您的数据库似乎不是空的:
heroku run python manage.py migrate,在推送包含迁移文件的任何提交之后。 -
谢谢!它工作@Chris
-
太棒了。我会添加一个正确的答案,以便您接受。
标签: python django heroku django-models cloudinary