Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 图像未上载到Django中的媒体文件夹_Python_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

Python 图像未上载到Django中的媒体文件夹

Python 图像未上载到Django中的媒体文件夹,python,django-models,django-forms,django-templates,django-views,Python,Django Models,Django Forms,Django Templates,Django Views,无法在Django模型中上载图像 我已经安装了Pillow,在我的设置中添加了MEDIA_URL和MEDIA_ROOT,添加了 静态(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)到my URL.py forms.py: class PostForm(forms.ModelForm) : class Meta : model = Post fields = ['name', 'imag

无法在Django模型中上载图像

我已经安装了Pillow,在我的设置中添加了MEDIA_URL和MEDIA_ROOT,添加了
静态(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)
到my URL.py

forms.py:

class PostForm(forms.ModelForm) :
    class Meta :
        model = Post
        fields = ['name', 'image', 'description', 'age', 'cost', 'address', 'seller', 'phone', ]
post_edit.html:

{% extends 'blog/base.html' %}

{% block content %}
    <h2>New post</h2>
    <form method="POST" class="post-form">{% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="save btn btn-default">Save</button>
    </form>
{% endblock %}
URL.py:

path('edit/', views.post_edit, name='post_edit'),
views.py:

@login_required
def post_edit(request, pk) :
    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST" :
        form = PostForm(data=request.POST, files=request.FILES, instance=post)
        if form.is_valid() :
            post = form.save(commit=False)
            post.save()
            return redirect('post_detail', pk=post.pk)
    else :
        form = PostForm(instance=post)
    return render(request, 'blog/post_edit.html', {'form' : form})
如果向新对象添加图像,则图像不会上载到
媒体/images/

以我适度的理解力,我无法发现错误。有人能帮我吗?

您需要在模板中添加
enctype=“multipart/form data”
表单属性:

<form method="POST" class="post-form" enctype="multipart/form-data">{% csrf_token %}
{%csrf\u令牌%}
从:

请注意,request.FILES仅在request方法 was POST和已发布请求的具有属性 enctype=“多部分/表单数据”

<form method="POST" class="post-form" enctype="multipart/form-data">{% csrf_token %}