class CreateReviewView(TemplateView): """Page for creating a new restaurant review""" template_name = 'create_review.html' def get(self, request, pk): self.restaurant = get_object_or_404(Restaurant, pk=pk) self.form = ReviewForm() return super(CreateReviewView, self).get(request, pk) def post(self, request, pk): self.restaurant = get_object_or_404(Restaurant, pk=pk) self.form = ReviewForm(request.POST) if self.form.is_valid(): review = self.form.save(commit=False) review.restaurant = self.restaurant review.save() messages.info(request, "Thank you for your review.") return redirect(self.restaurant) return self.render_to_response(self.get_context_data(request, pk)) def get_context_data(self, *args, **kwargs): return { 'restaurant': self.restaurant, 'form': self.form }