Djangoでブログアプリを作成していて、ブログ投稿のデータを保持する投稿モデルの管理サイトにDjango-Markdownフィールドを追加したいと思います。
次のコードでどのような変更を行う必要がありますか?
Django:2.2.4とDjango-Markdown-App:0.9.6を使用しています
これが私の投稿モデルです
ONE = 1
TWO = 2
status_choices = (
(ONE, 'draft'),
(TWO, 'published')
)
class Posts(models.Model):
title = models.CharField(max_length=255, blank=False)
content = MarkdownField()
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True)
author = models.ForeignKey(
User,
on_delete=models.CASCADE
)
status = models.IntegerField(choices=status_choices, default=ONE)
slug = models.SlugField(max_length=255)
def __str__(self):
return self.title
class Meta:
verbose_name = "Post"
verbose_name_plural = "Posts"
これがadmin.pyコードです
from django.contrib import admin
from .models import Posts
from django_markdown.admin import MarkdownModelAdmin
# Register your models here.
class PostsAdmin(MarkdownModelAdmin):
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Posts, PostsAdmin)
これがsettings.pyです
INSTALLED_APPS = [
......,
'django_markdown',
......,
]
MARKDOWN_EDITOR_SKIN = 'markitup'
これがプロジェクトレベルのurls.pyです
urlpatterns = [
.......
path('markdown/', include('django_markdown.urls')),
.......
]
単純なテキストフィールドの代わりに管理サイトにマークダウンインターフェイスを表示することを期待していますが、現在の出力は単純なテキストフィールドです。
jQueryスクリプトが見つからないようです。このカスタムadminModelで試すことができますか?
from django_markdown.admin import MarkdownModelAdmin
class PostsAdmin(MarkdownModelAdmin):
prepopulated_fields = {'slug': ('title',)}
class Media:
js = (
'https://code.jquery.com/jquery-3.4.1.min.js', # adds jquery script
)
admin.site.register(Posts, PostsAdmin)
(何かがdjango-admin Jqueryへのアクセスをブロックしています。通常はオブジェクトで使用できますdjango.jQuery
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加