Форма не загружает imageField в Django - PullRequest
0 голосов
/ 17 апреля 2020

Я слежу за онлайн курсом по Django.

Мне нужно загрузить изображение через форму, но оно не работает.

Моя форма находится в блоге / контакте, и когда я отправляю ее, она возвращается в блог / без сохранения for, также я вижу, что после отправки форма будет привязана = false и действительна = false.

Если кто-нибудь может мне помочь?

Вот мой код:

# views.py 
def nouveau_contact(request):
    sauvegarde = False
    #il ne faut pas oublier le request.FILES sinon ça ne marche pas
    form = NouveauContactForm(request.POST or None, request.FILES or None)
    print ("erreur : ")
    print(form.is_valid)
    if form.is_valid():
        contact = Contact()
        contact.nom = form.cleaned_data["nom"]
        contact.adresse = form.cleaned_data["adresse"]
        contact.photo = form.cleaned_data["photo"]
        contact.save()
        sauvegarde = True

    return render(request, 'blog/contact.html', {
        'form': form,
        'sauvegarde': sauvegarde
    })

# forms.py
class NouveauContactForm(forms.Form):
    nom = forms.CharField()
    adresse = forms.CharField(widget=forms.Textarea)
    photo = forms.ImageField()

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

Я пользуюсь anaconda, и я уже скачал подушку

Заранее благодарю за ваше помощь

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Я решил это. Я на самом деле просто забыл действие в форме -_-

0 голосов
/ 17 апреля 2020

вы должны использовать upload_to в ImageField в модели. «путь» в upload_to используется для пути к изображению в media_ root.

# views.py 
def nouveau_contact(request):
sauvegarde = False
#il ne faut pas oublier le request.FILES sinon ça ne marche pas
form = NouveauContactForm(request.POST or None, request.FILES or None)
print ("erreur : ")
print(form.is_valid)
if form.is_valid():
    contact = Contact()
    contact.nom = form.cleaned_data["nom"]
    contact.adresse = form.cleaned_data["adresse"]
    contact.photo = form.cleaned_data["photo"]
    contact.save()
    sauvegarde = True

return render(request, 'blog/contact.html', {
    'form': form,
    'sauvegarde': sauvegarde
})

# forms.py
class NouveauContactForm(forms.Form):
    nom = forms.CharField()
    adresse = forms.CharField(widget=forms.Textarea)
    photo = forms.ImageField(upload_to='path')
# Media files
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...