python - 如何使用带有 ImageField 的 Django 上传图像?
问题描述
伙计们。我有一个问题,我想在我的网站上更改模型的缩略图(这里谈论 3D 打印,还有 Django 的),但 Django 并没有改变它。
模型.py
class Model3D(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=300)
description = models.TextField(max_length=800, blank=True)
thumbnail = models.ImageField(upload_to='models/thumbnails', null=True)
我尝试了两种不同的forms.py版本1
class ImageUploadForm(forms.Form):
"""Image upload form."""
image = forms.ImageField()
版本 2(忽略以下名称,这只是一个快速测试)
class ModelCreateForm(forms.ModelForm):
class Meta:
model = Model3D
fields = ['name', 'thumbnail']
help_texts = {
'thumbnail': ("Gebe hier den Namen des Modelles ein.")
}
视图.py
def save_settings(request, pk):
model = get_object_or_404(Model3D, pk=pk)
if request.method == 'POST':
# print("request.method == 'POST'" + str(dir(saveModel)))
model.name = request.POST.get('name', model.name)
model.description = request.POST.get('description', model.description)
form = ImageUploadForm(request.POST, request.FILES)
if form.is_valid():
model.thumbnail = form.cleaned_data['image']
model.save()
return HttpResponse('image upload success')
model.save()
return redirect('settings_model', pk=model.pk)
return redirect('settings_model', pk=model.pk)
我的模板中有 enctype="multipart/form-data。请帮忙!
解决方案
推荐阅读
- c - 如何编写 C 函数将整数翻译成英文短语?
- javascript - 需要解决 XMLHttpRequest 预检问题的方法
- univocity - Univocity 解析是否支持 java 8 日期时间类型转换(LocalDateTime)?
- mysql - 查找一列的重复项,但仅在另一列具有相同值时才返回结果
- shell - 如何在 IPython 控制台中获取 Shell 历史记录
- c++ - C++ google protobuf:如何从扩展的 FieldDescriptor 创建 MutableExtension
- windows - 如果文件夹名称包含 Unicode 字符,批处理将无法正常工作
- vue.js - 如何仅将 css 样式应用于特定的 Vue 组件及其子组件?
- vue.js - 数据库更新,但 Vuex 商店没有
- vue.js - 如何在mounted()上获取状态vuex并传递给数据?