Как правильно загружать изображение в Django

#django #django-models #django-rest-framework

#django #django-модели #django-rest-framework

Вопрос:

У меня есть конечная точка REST для создания определенного ресурса, но теперь я хочу добавить функциональность загрузки изображения при создании ресурса. Каков правильный способ выполнения такой функции? Нужно ли загружать файл отдельно, а затем выполнять другой POST-запрос для создания ресурса?

Ответ №1:

Ну, я не очень хорошо разбираюсь в 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>
  

Убедитесь, что вы используете FileField вместо ImageField для изображения в models.py