#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