Это поле обязательно к заполнению. Ошибка с ImageField django - PullRequest
0 голосов
/ 26 февраля 2020

Я получаю 'This field is required' ошибку при загрузке изображения. Я не понимаю, почему я получаю эту ошибку, моя модель очень базова c, но я не знаю, почему и где я получаю ошибку. Некоторая помощь будет оценена. Моя модель:

class Post(models.Model):
title= models.CharField(max_length=100)
img = models.ImageField(upload_to='pics')
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author= models.ForeignKey(User,on_delete=models.CASCADE)

def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('User-Posts-Details', kwargs={'pk': self.pk})

'мои взгляды'

class PostCreateViews(CreateView):
model = Post
fields = ['title','img','content']

def form_valid(self, form):
    form.instance.author = self.request.user
    return super().form_valid(form)

и html код

<div class="blog_list">
<form method="POST">
    {% csrf_token %}
    <h2 class="blog_heading">New Post</h2>
    <fieldset class="form-group" id="new">
        {{ form|crispy}}
    </fieldset>
    <div class="form-group">
        <button class="btn btn-outline-info" type="submit">Post</button>
    </div>
</form>

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Вот другой возможный ответ. Измените форму, чтобы включить файлы в запрос POST:

<form method="POST" enctype="multipart/form-data">
0 голосов
/ 26 февраля 2020

Вам нужно изменить поле вашей модели img ...

С

img = models.ImageField(upload_to='pics') 

На

img = models.ImageField(upload_to='pics', null=True, blank=True)

И затем запустить ...

python manage.py makemigrations
python manage.py migrate

А затем снова запустите приложение ..

...