Django 1.11分页Markdown

Django 1.11分页Markdown

问题描述:

我试图通过使用数组分割它在Django很长的字符串,但我成功地做了django-markdown-deux 停止工作。Django 1.11分页Markdown

这里是我是如何实现它: models.py:

class Post(models.Model): 
content = models.TextField() 

def get_markdown(self): 
    content = self.content 
    markdown_text = markdown(content) 
    return mark_safe(markdown_text) 

views.py:

def post_detail(request, slug=None): #retrieve 
instance = get_object_or_404(Post, slug=slug) 

#Detect the breaklines from DB and split the paragraphs using it 
tempInstance = instance.content 
PaginatedInstance = tempInstance.split("\r\n\r\n") 

paginator = Paginator(PaginatedInstance, 5) #set how many paragraph to show per page 

page = request.GET.get('page', 1) 

try: 
    Paginated = paginator.page(page) 
except PageNotAnInteger: 
    Paginated = paginator.page(1) 
except EmptyPage: 
    Paginated = paginator.page(paginator.num_pages) 

context = { 
    "instance": instance, 
    "Paginated": Paginated, #will use this to display the story instead of instance (divided string by paragraph) 
} 

return render(request, "post_detail.html", context) 

post_detail.html:

这是工作的一个(不分页):

{{ instance.get_markdown }} 

这一个工程作为纯文本如果删除.get_markdown,如果我把.get_markdown

{% for paginatedText in Paginated %} 
{{ paginatedText.get_markdown }} 
{% endfor %} 

paginatedText实例没有定义的get_markdown方法不会显示任何内容。因此,当您尝试调用模板时,模板会自动失败。您将需要使用markdownfilter代替:

{% load markdown_deux_tags %} 

{% for paginatedText in Paginated %} 
{{ paginatedText|markdown }} 
{% endfor %} 
+0

它的工作但有次说,我插入使用降价形式的影像时,不会显示。 –

+0

每当我添加一个图像,降价形式将生成此代码:'![enter image description here] [1]'在我想要图像显示的位置,并且这个: '[1]:link- image.com \ image.png'在内容的最后部分,除非我将''旁边的'[1]:link-to-image.com \ image.png'复制出来,否则这些内容将不起作用![enter image description here] [1]' –

+0

对。 Pagninator不是Markdown意识到的。它假设一个更简单的纯文本。您或者需要以分页程序无法打破的方式格式化Markdown,或者使用更复杂的分页程序。就个人而言,我建议将Markdown转换为HTML作为整个文档,然后对HTML进行分页。但是,这超出了这个问题的范围。 – Waylan