我正在使用Django 2.0.4版,但是我遇到models.ImageField
的问题。
每当我尝试用新的图像更新现有图像时,都不会发生任何事情。另外,当我尝试清除图像时,什么也没有发生。 我已经像Pillow一样安装了所有依赖项。
我像往常一样声明了ImageField-
class Community(models.Model):
image = models.ImageField(
upload_to=upload_location,
null=True,
blank=True,
width_field="width_field",
height_field="height_field", help_text="A image representing the Community")
height_field = models.IntegerField(null=True, blank=True)
width_field = models.IntegerField(null=True, blank=True)
def __str__(self):
return str(self.id)
我以前使用过ImageField,但从未遇到过这样的问题。 Django版本有问题吗?我应该考虑升级我的Django版本吗? 预先感谢
我尝试过的事情- 我尝试了其他数据库。 尝试升级枕头版本
答案 0 :(得分:0)
您可以通过以下方式在Django中上传或更新图像:
models.py文件
class ImageModel(models.Model):
image = models.FileField(upload_to="profile pics/", null=True, blank=True)
image.html文件
<form method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
这就是我过去在项目中上传/更新图像的方式。
希望一切顺利。干杯!
答案 1 :(得分:0)
我弄清楚了问题所在。我确实将admin.py中的save方法实现为
def save_model(self, request, obj, form, change):
if change:
obj.updated_by = request.user
else:
obj.created_by = request.user
obj.updated_by = request.user
obj.save()
这是导致问题的原因。我通过这样调用超类的save_model来解决它-
def save_model(self, request, obj, form, change):
super().save_model(request, obj, form, change)
if change:
obj.updated_by = request.user
else:
obj.created_by = request.user
obj.updated_by = request.user
obj.save()
我知道我应该已经调用过此函数,但是对我来说,每次必要时都调用它是一个很好的学习