【发布时间】:2019-02-22 19:58:00
【问题描述】:
在models.py中:
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
image = models.ImageField(upload_to='post_pics', blank=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
我想在“图像”字段中添加 ValidationError 消息:
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
fields = ['title', 'content', 'image']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
如果用户在图像字段中上传其他内容,表单将不会提交,这很好,但我想添加额外的消息,例如“仅限图像..”。理想情况下结合多个错误(大小或分辨率)。
我希望将视图结构保持为基于类,因此无需进入 forms.py 或创建基于函数的视图。
提前致谢。
【问题讨论】:
-
您是否考虑过将
FileField与自定义验证器一起使用?有关想法,请参阅 this answer。
标签: django django-models django-class-based-views