【发布时间】:2018-08-16 07:28:49
【问题描述】:
我想知道如何在 form.save 之前显示 Django message.error(如果用户收到该错误消息,表单将不会被保存,用户必须再次在表单中填写值)。
我不知道是我把它们放在了错误的地方还是其他什么原因,我绝对可以得到关于for loop and if else 的正确值,但是如果用户的 work_times >= 8 小时,页面没有显示该错误消息,并且项目可以像以前一样保存,但我确实添加了for loop and if else! views.py的部分代码是这样的:
class ProjectCreateView(CreateView):
model = Project
form_class = ProjectForm
def form_valid(self, form):
request = self.request
for u in user_project:
user_times = int(sum(t['learn_times'] for t in times))
if user_times >= 8 or int(request.POST.get('learn_times')) + user_times >= 8:
messages.error(self.request, u.username + "'s learn_times is more than 8 hours, please check!")
else:
pass
project = form.save(commit=False)
project.save()
form.save_m2m()
messages.success(self.request, 'Project created successfully!')
return super(CoursePermitCreateView, self).form_valid(form)
def get_success_url(self):
return reverse('project_change', kwargs={'pk': self.object.pk})
非常感谢您的建议。
【问题讨论】:
标签: django python-3.x django-models django-forms message