【问题标题】:What the proper way of uploading an image in Django在 Django 中上传图片的正确方法是什么
【发布时间】:2020-10-26 14:09:05
【问题描述】:

我有一个用于创建某些资源的 REST 端点,但现在我想在创建资源时添加上传图像的功能。执行此类功能的正确方法是什么?您是否需要单独上传文件,然后再进行一次 POST 请求来创建资源?

【问题讨论】:

    标签: django django-models django-rest-framework


    【解决方案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>
    

    确保在 models.py 中使用 FileField 而不是 ImageField 来获取图像

    【讨论】:

      猜你喜欢
      • 2016-09-11
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 2014-12-29
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      相关资源
      最近更新 更多