Общий вид UpdateView из учебника django не сохраняет файлы или изображения - PullRequest
0 голосов
/ 10 сентября 2018

UpdateView нигде не сохраняет файлы или изображения, в чем может быть проблема?

настройки:

MEDIA_ROOT=""

article_form.html:

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

просмотров.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

1 Ответ

0 голосов
/ 11 сентября 2018

Просто добавьте в форму

enctype="multipart/form-data"

Так что это закончится как:

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

И я также предлагаю установить MEDIA_ROOT и MEDIA_URL в ваших settings.py

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

И добавьте его в конце вашего urls.py

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