首页 > 解决方案 > 如何在 Django 中上传到 imagefield

问题描述

我可以在 Django 框架中创建我的对象并直接从那里上传图像。现在我想从 HTML 表单上传图像,而不是从 Django 框架上传。如何将图像从我的 HTML 上传到我的/media/文件夹?

我的模型.py:

class New(models.Model):
news_title = models.CharField(max_length=100,blank=False,verbose_name="Titolo news")
news_small_description = models.TextField(default=None,null=True,blank=True,verbose_name="Descrizione breve")
news_description = models.TextField(default=None, null=True, blank=True, verbose_name="Descrizione")
news_image = models.ImageField(default=None, blank=True, null=True, verbose_name="Immagine")
news_date = models.DateTimeField(auto_now=True, null=True, verbose_name="Data news")
class Meta:
    verbose_name = "New"
    verbose_name_plural = "News"

我的 view.py POST API:

@api_view(['POST'])
def send_news(request):
    try:
        newstitle = get_param(request.POST, "newstitle", NOT_NONE)
        newssmalldescription = get_param(request.POST, "newssmalldescription", OPTIONAL)
        newsdescription = get_param(request.POST, "newsdescription", OPTIONAL)
        newsimage = get_param(request.POST, "newsimage", OPTIONAL)

        New.objects.create(
            news_title = newstitle,
            news_small_description = newssmalldescription,
            news_description = newsdescription,
            news_image = newsimage,
        )

        return HttpResponse("La tua novità è stata aggiunta correttamente.")

    except ValueError as ve:
        print(ve)
        return HttpResponseBadRequest(json.dumps({"error_message": str(ve)}), content_type='application/json')
    except Exception as e:
        print(e)
        return HttpResponseServerError(json.dumps({"error_message": str(e)}), content_type="application/json")

在我的 html 中,我向我的send_newsAPI 发送了一个 POST 请求,唯一缺少的字段是newsimage. 但我不明白如何将我的 HTML 页面中的图片收费到我的 MEDIA 文件夹中。谢谢!

标签: javascriptdjango

解决方案


您是否制作了表单 enctype="multypart/form-data"?

 <form class="col" method="POST" enctype="multipart/form-data"action="{% url 'your_action' %}">

我有同样的问题


推荐阅读