首先,您可能想使用
LoginRequiredMixin
这样,只有登录的用户才能访问该视图。
from django.contrib.auth.mixins import LoginRequiredMixin
class EventCreationForm(LoginRequiredMixin, View):
您可以使用访问登录用户
self.request.user
。
if form.is_valid():
event = form.save(commit=False)
event.user = self.request.user
event.save()
message = 'Event added'
return redirect('/success-url/')
请注意,最好在保存事件后重定向,以防止表单提交重复。
请注意,您正在复制
FormView
或
CreateView
。如果使用这些,就不必编写那么多代码。
class EventCreationForm(LoginRequiredMixin, CreateView):
template_name = 'eventcreationform.html'
form_class = EventForm
success_url = '/success-url/' # form_valid() will redirect here
def form_valid(self, form):
form.instance.user = self.request.user
return super(EventCreationForm, self).form_valid(form)