【发布时间】:2020-10-26 14:09:05
【问题描述】:
我有一个用于创建某些资源的 REST 端点,但现在我想在创建资源时添加上传图像的功能。执行此类功能的正确方法是什么?您是否需要单独上传文件,然后再进行一次 POST 请求来创建资源?
【问题讨论】:
标签: django django-models django-rest-framework
我有一个用于创建某些资源的 REST 端点,但现在我想在创建资源时添加上传图像的功能。执行此类功能的正确方法是什么?您是否需要单独上传文件,然后再进行一次 POST 请求来创建资源?
【问题讨论】:
标签: django django-models django-rest-framework
好吧,我对 Django 不太擅长,但我通过使用表单来做到这一点,而且效果很好。
forms.py
class ProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ('brand', 'name', 'image', 'price',
'warrenty', 'description', 'seller')
在views.py中
def merchant_product(request):
if request.method == 'POST':
form = ProductForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('merchant-product')
else:
print('Adding product failed from {}'.format(request.user.id))
return render(request, 'dashboard/merchant/product.html', {'form': ProductForm})
最终在图像字段的 HTML 文件中
<input class="form-control" type="file" name="{{form.image.name}}" required>
确保在 models.py 中使用 FileField 而不是 ImageField 来获取图像
【讨论】: