Source code for tinymce.models

# coding: utf-8
# Copyright (c) 2008 Joost Cassee, 2016 Roman Miroshnychenko
# Licensed under the terms of the MIT License (see LICENSE.txt)

from __future__ import absolute_import
from django.db import models
from django.contrib.admin.widgets import AdminTextareaWidget
from tinymce.widgets import TinyMCE, AdminTinyMCE

__all__ = ['HTMLField']


[docs]class HTMLField(models.TextField): """ A text area model field for HTML content. It uses the TinyMCE 4 widget in forms. Example:: from django.db.models import Model from tinymce import HTMLField class Foo(Model): html_content = HTMLField('HTML content') """ def __init__(self, *args, **kwargs): self.tinymce_profile = kwargs.pop('profile', None) super(HTMLField, self).__init__(*args, **kwargs) def formfield(self, **kwargs): defaults = { 'widget': TinyMCE(profile=self.tinymce_profile) } defaults.update(kwargs) # As an ugly hack, we override the admin widget if defaults['widget'] == AdminTextareaWidget: defaults['widget'] = AdminTinyMCE(profile=self.tinymce_profile) return super(HTMLField, self).formfield(**defaults)