from django.http import HttpResponseBadRequest from django.views.generic.base import ContextMixin, TemplateResponseMixin, View class MarkdownPreviewView(TemplateResponseMixin, ContextMixin, View): def post(self, request, *args, **kwargs): try: self.preview_data = data = request.POST["preview"] except KeyError: return HttpResponseBadRequest("No preview data specified.") return self.render_to_response( self.get_context_data( preview_data=data, ) ) class ProblemMarkdownPreviewView(MarkdownPreviewView): template_name = "problem/preview.html" class BlogMarkdownPreviewView(MarkdownPreviewView): template_name = "blog/preview.html" class ContestMarkdownPreviewView(MarkdownPreviewView): template_name = "contest/preview.html" class CommentMarkdownPreviewView(MarkdownPreviewView): template_name = "comments/preview.html" class ProfileMarkdownPreviewView(MarkdownPreviewView): template_name = "user/preview.html" class OrganizationMarkdownPreviewView(MarkdownPreviewView): template_name = "organization/preview.html" class SolutionMarkdownPreviewView(MarkdownPreviewView): template_name = "solution-preview.html" class LicenseMarkdownPreviewView(MarkdownPreviewView): template_name = "license-preview.html" class TicketMarkdownPreviewView(MarkdownPreviewView): template_name = "ticket/preview.html"