Example #1
0
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
        }