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

django-tinymce HTMLField covering model field description in admin/add

问题

使用 django-tinymcetinymce_models.HTMLField() 时,模型字段的名称在 Django 的管理 "add" 页面中不可见。 Name:字段在图中,Description字段没有。如何在 TinyMCE 编辑器上显示 Description 文本?

模特

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)

版本

一堆代码

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

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

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

更多图片

我知道文本 Description: 在 HTML 中:

这家伙在掩饰?

是的,一个熟悉的问题。您需要将 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 就足够了。