django - django教程中的通用 View UpdateView不保存文件或图像

标签 django file upload django-views django-generic-views

UpdateView 无法在任何地方保存文件或图像,这可能是什么问题?

设置:

MEDIA_ROOT=""

article_form.html:

<form method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save">
</form>

views.py:

from django.views.generic.edit import UpdateView
class updatingexample(UpdateView):
    model = Article
    fields = ['file1','file2','photo']

url.py

app_name = 'polls'
urlpatterns=[
path('<int:pk>/upd/', updatingexample.as_view(),name="ugh")
]

型号:

class Article(models.Model):
    title = models.CharField(max_length=200)
    pub_date = models.DateField()
    file1 = models.FileField(upload_to='uploads/',blank=True)
    file2 = models.FileField(upload_to='uploads/%Y/%m/%d/',blank=True)
    photo = models.ImageField(upload_to='uploads',blank=True)
    def get_absolute_url(self):
        return reverse('polls:ugh', kwargs={'pk': self.pk})#back to itself

最佳答案

只需添加到您的表单

enctype="multipart/form-data"

所以它会像这样结束:

<form method="post" enctype="multipart/form-data">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save">
</form>

我还建议在 settings.py 中设置 MEDIA_ROOT 和 MEDIA_URL

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

并将其添加到 urls.py 的末尾

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

关于django - django教程中的通用 View UpdateView不保存文件或图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52263711/

相关文章:

django - 当关系包含属性时,如何在django中实现多对多关系?

file - 解析JPEG文件格式: Format of entropy-coded segments (ECS)?

c - 读取直到行尾

ruby-on-rails - rails : how does background file upload work?

http - Google Cloud Storage 签名 URL——如何指定最大文件大小?

javascript - 使用python将base64字符串转换为png图像

Django Rest Framework 对缓存请求的 throttle 率

file - 将多个不同长度的文件重命名为最后 16 个字符

java - 架构建议 : Grails and Video Content

django - 如何向 Django 模型添加额外数据以在模板中显示?