在Django中上传图像的正确方式是什么

在Django中上传图像的正确方式是什么,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我有一个用于创建特定资源的REST端点,但现在我想添加在创建资源时上载图像的功能。这样做的正确方式是什么?您是否需要单独上传文件,然后执行另一个POST请求来创建资源?我对Django不是很在行,但我是通过使用表单来完成的,而且效果很好 forms.py class ProductForm(forms.ModelForm): class Meta: model = Product fields = ('brand', 'name', 'image', 'price',

我有一个用于创建特定资源的REST端点,但现在我想添加在创建资源时上载图像的功能。这样做的正确方式是什么?您是否需要单独上传文件,然后执行另一个POST请求来创建资源?

我对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