django-tinymce HTMLField覆盖admin / add中的模型字段描述

时间:2017-01-20 01:28:26

标签: python django tinymce django-tinymce

问题

使用django-tinymcetinymce_models.HTMLField()时,Django的管理“添加”页面中不会显示模型字段的名称。 Name:字段位于图片中,但Description字段不在。如何在TinyMCE编辑器上显示Description文本?

enter image description here

模型

class Project(models.Model):
    name = models.CharField(max_length=255)
    slug = models.SlugField(unique=True, max_length=255)
    description = tinymce_models.HTMLField()
    started = models.DateField(blank=True)

版本

  • Django 1.10.4
  • django-tinymce 2.4.0
  • 微小的MCE 4.5.2

一串代码

https://codepen.io/anon/pen/xgqRqM

HTML直接来自Django管理页面上的Chrome开发者工具,用于添加此模型。 CSS既是Django又是Tiny MCE。 JS来自Tiny MCE主题。 它似乎没有在Codepen上正确呈现,所以我不确定它会有多么有用......

如果我能提供更多澄清信息,请告诉我。

更多图片

我知道文字Description:在HTML中: enter image description here

这家伙正在掩盖它? enter image description here

1 个答案:

答案 0 :(得分:1)

是的,一个熟悉的问题。您需要将TinyMCE 4小部件的左边距移动到右侧。在我的django-tinymce4-lite包中,我使用以下动态CSS来设置小部件位置:

/* Fixes TinyMCE 4 widget position in Django admin */
.form-row .mce-tinymce {
  margin-left: {{ margin_left }}px;
}
.form-row .mce-fullscreen {
  margin-left: 0;
}

这是生成CSS的视图:

def css(request):
    """
    Custom CSS for TinyMCE 4 widget

    By default it fixes widget's position in Django Admin

    :param request: Django http request
    :type request: django.http.request.HttpRequest
    :return: Django http response with CSS file for TinyMCE 4
    :rtype: django.http.HttpResponse
    """
    if 'grappelli' in settings.INSTALLED_APPS:
        margin_left = 0
    elif VERSION[0] == 1 and VERSION[1] <= 8:
        margin_left = 106  # For old style admin
    else:
        margin_left = 170  # For Django >= 1.9 style admin
    return render(request, 'tinymce/tinymce4.css', {'margin_left': margin_left}, content_type='text/css')

但如果你不支持多个Django版本,那么具有必要保证金价值的静态CSS就足够了。