When I clicked the publish button. I get this error (image field = `This field is required), and it's not submitting the post.
models.py:
class Blog(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='post_author')
blog_title = models.CharField(max_length=300, verbose_name='Put a Title')
slug = models.SlugField(max_length=264, unique=True, null=True)
blog_content = models.TextField(verbose_name='What is on your mind')
blog_image = models.ImageField(upload_to='blog_images', verbose_name='Image', null=True)
publish_date = models.DateTimeField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
def __str__(self):
return self.blog_title
views.py:
@login_required
def createblog(request):
form = CreateBlogPost()
if request.method == 'POST':
form = CreateBlogPost(request.POST, request.FILES)
if form.is_valid():
blog_obj = form.save(commit=False)
blog_obj.author = request.user
title = blog_obj.blog_title
print(title)
blog_obj.slug = title.replace(" ", "-")+"-"+str(uuid.uuid4())
print(blog_obj.slug)
blog_obj.save()
return HttpResponseRedirect(reverse('index'))
return render(request, 'App_Blog/create_blog.html', {'form': form})
This field is required
this is a Validation
error from Django
form and it depends on your models
, if you are using model form you have to set blank=True
like this
blog_image = models.ImageField(upload_to='blog_images', verbose_name='Image', null=True,blank=True)
blank=True
means field can be empty (it is not required field) and null=True
means your database table row
can accept null
values.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.