【问题标题】:Add view in the bottom of Django modeladmin在 Django modeladmin 底部添加视图
【发布时间】:2018-03-05 17:57:40
【问题描述】:

我有一个用 Django 制作的博客,我用 Markdown 写帖子。我想在管理页面的底部为条目类(我的博客文章类)的每个实例添加一个视图,以便在我写作时可以预览降价的样子。就像您在创建新帖子时在 Stack Overflow 上获得预览一样。

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

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

是否可以进一步修改 ModelAdmin,使其加载某个 html 文件(blogpost.html)并将其显示在管理页面的底部?

我做了一张图片来表达我的意思:

注意:我知道有各种工具,例如 Django admin plus,它允许将视图添加到管理界面,但不能针对对象的每个实例。

【问题讨论】:

    标签: python django django-admin markdown


    【解决方案1】:

    您可以为此使用markdownx

    pip install django-markdownx
    

    项目设置.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)
    

    这应该可行。

    【讨论】:

    • 非常感谢您的全面回答。这不是我想做的。由于我有 MathJax 从 markdownx 的输出中解释 LaTeX 代码,因此这种预览方式不会完全按照呈现给用户的方式显示帖子。您知道是否可以在管理页面底部附加实际页面的视图?
    • @Math_kv,你可以使用 CKEditor。这也将解释mathjx
    猜你喜欢
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多