ImageField не принимает значение из файла html в DJANGO - PullRequest
0 голосов
/ 04 апреля 2020

Я делаю пользовательскую платформу CMS в Django. Я хочу загрузить избранное изображение от пользователя.

Вот мой файл forms.py

class CkEditorForm(ModelForm):
    ..........
    ..........
    featuredImage = forms.ImageField(required=True)

Мои модели.py

class Post(models.Model):
    ..........
    ..........
    featuredImage = models.ImageField(upload_to="featured_image/")

Мой HTML Шаблон

 <div class="col-sm-6">
     {{myForm.featuredImage}}
   </div>

Я использовал еще один метод в шаблоне, но он не работал для меня -

<input type="file" name="featuredImage" accept="image/*" required id="id_featuredImage">

Примечание. Изображение успешно загружено через Django панель администратора, но не работает, когда Я пытаюсь загрузить с помощью шаблонов (HTML файл)

Кроме того, он работал, когда я использовал этот метод для отображения моей формы в html

{{myForm.as_p}}

Но я хочу сделать метод ввода каждой формы по-разному.

{{myForm.category}}
{{myForm.tags}}
{{myForm.featuredImage}}

Вот views.py

def postView(request):

    if request.method== "GET":
        form = CkEditorForm()
        return render(request,"post/post.html",{'myForm':CkEditorForm})

    else:
        if request.method == 'POST':         
            form = CkEditorForm(request.POST)            
            if form.is_valid():            
                form.save()
                return render(request,"post/post.html",{'myForm':CkEditorForm})
            else:
                messages.error(request, "Error")
        return render(request,"post/post.html",{'myForm':CkEditorForm})

1 Ответ

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

Я изменил свой Views.py, и он работал для меня ...

def postView(request):

    if request.method== "GET":
        form = CkEditorForm()
        return render(request,"post/post.html",{'myForm':CkEditorForm})

    else:
        if request.method == 'POST':         
            form = CkEditorForm(request.POST,request.FILES)            
            if form.is_valid():            
                form.save()
                return render(request,"post/post.html",{'myForm':CkEditorForm})
            else:
                messages.error(request, "Error")
        return render(request,"post/post.html",{'myForm':CkEditorForm})

Я просто изменил это. Добавьте request.FILES для получения данных изображения.

form = CkEditorForm(request.POST,request.FILES)     
...