我在我的 Django 应用程序上遇到降价问题。我正在从教程中写博客,并希望在我的帖子中降价。我为 Django 安装了Markdownx,它几乎可以工作。
当涉及到代码块时,我遇到了问题。markdown 在管理页面中看起来与在 html 页面的呈现中不同。我希望我的代码块像在 stackoverflow 和 github 上一样出现。相反,当我使用三个 ``` 进行代码块格式化时,我得到红色文本。
以下是我要询问的应用程序的文件:
project/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path('projects/', include('projects.urls')),
path('blog/', include('blog.urls')),
path('markdownx/', include('markdownx.urls')),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
project/settings.py
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'projects',
'blog',
'markdownx',
]
...
app/models.py
from django.db import models
from markdownx.models import MarkdownxField
from markdownx.utils import markdownify
class Projects(models.Model):
title = models.CharField(max_length=100)
short_description = models.TextField()
long_description = MarkdownxField()
project_link = models.URLField(max_length=250)
def formatted_markdown(self):
return markdownify(self.long_description)
app/admin.py
from django.contrib import admin
from projects.models import Projects
from markdownx.admin import MarkdownxModelAdmin
class ProjectsAdmin(admin.ModelAdmin):
pass
admin.site.register(Projects, MarkdownxModelAdmin)
app/views.py
from django.shortcuts import render
from projects.models import Projects
def project_index(request):
projects = Projects.objects.all()
context = {
'projects' : projects
}
return render(request, 'project_index.html', context)
def project_detail(request, pk):
project = Projects.objects.get(pk=pk)
context = {
'project' : project
}
return render(request, 'project_detail.html', context)
app/templates/project_detail.html
{% extends "base.html" %}
{% load static %}
{% block page_content %}
<h1>{{ project.title }}</h1>
<div class="row">
<div class="col-md-4">
<h5>About the project:</h5>
<p>{{ project.formatted_markdown|safe|linebreaks }}</p>
<br>
<h5>Project Link</h5>
<a href="{{ project.project_link }}" class="btn btn-primary" >Github</a>
</div>
</div>
{% endblock %}
第一个图像是管理页面视图。