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/