在Django的底部添加视图modeladmin

问题描述:

我有一个使用Django制作的博客,我在markdown中撰写帖子。我想在管理页面的底部为Entry Entry(我的博客帖子类)的每个实例添加一个视图,以便我可以在编写时预览Markdown的外观。正如您在创建新帖子时在Stack Overflow中预览一样。在Django的底部添加视图modeladmin

我已经有一个管理类扩展的ModelAdmin:

class EntryAdmin(admin.ModelAdmin): 
    list_display = ('title','created') 
    prepopulated_fields = {'slug': ('title',)} 

是否有可能进一步修改的ModelAdmin,使得它加载某些HTML文件(blogpost.html),并将其显示在管理员的底部页?

我做了一个图片显示的正是我的意思是:

enter image description here

注:我知道有各种工具,如Django管理加,允许一个人的意见添加到管理界面,但不是针对对象的每个实例。

您可以使用markdownx为:

pip install django-markdownx 

项目settings.py

INSTALLED_APPS = 
    #. . . . 
    'markdownx', 
] 

项目urls.py

urlpatterns = [ 
    #[...] 
    url(r'^markdownx/', include('markdownx.urls')), 
] 

,然后收集static文件。

python3 manage.py collectstatic 

你的models.py

from markdownx.models import MarkdownxField 

class MyModel(models.Model): 
    myfield = MarkdownxField() 

您的应用程序admin.py

from django.contrib import admin 
from markdownx.admin import MarkdownxModelAdmin 
from .models import MyModel 


admin.site.register(MyModel, MarkdownxModelAdmin) 

这应该工作。

+0

非常感谢您的全面回答。这不完全是我想要做的。正如我有MathJax从markdownx的输出中解释LaTeX代码一样,这种预览方式并不会完全呈现给用户。你知道是否可以在管理页面的底部追加实际页面的视图吗? –

+0

@Math_kv,你可以使用CKEditor。这也将解释'mathjx'。 –