django-markdownx/markdownx/models.py
2017-03-12 20:42:32 +00:00

53 lines
2.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django.db import models
from .fields import MarkdownxFormField
class MarkdownxField(models.TextField):
"""
Custom Django field for Markdown text.
Parameters are identical to those of the ordinary Django **TextField** parameters for the model
fields. For consistency therefore, the descriptions have been borrowed from Django's official
documentations (with minor modifications).
:param verbose_name: A human-readable name for the field. If the verbose name isnt given,
Django will automatically create it using the fields attribute name,
converting underscores to spaces.
:type verbose_name: str
:param blank: If ``True``, the field is allowed to be blank. Default is ``False``.
:type blank: bool
:param null: If ``True``, Django will store empty values as **NULL** in the database.
Default is ``False``.
:type null: bool
:param editable: If ``False``, the field will not be displayed in the admin or any other
ModelForm. They are also skipped during model validation. Default is ``True``.
:type editable: bool
:param help_text: Extra “help” text to be displayed with the form widget. Its useful for
documentation even if your field isnt used on a form. Note that this value
is not HTML-escaped in automatically-generated forms. This lets you include
HTML in ``help_text`` if you so desire.
:type help_text: str
:param validators: A list of validators to run for this field. See the
`validators documentation <https://docs.djangoproject.com/en/dev/ref/validators/>`_
for more information.
:type validators: list, tuple
:param error_messages: The error_messages argument lets you override the default messages that the field
will raise. Pass in a dictionary with keys matching the error messages you want
to override. Relevant error message keys include ``null``, ``blank``, and ``invalid``.
:type error_messages: dict
:param kwargs: Other ``django.db.models.field`` parameters. See
`Django documentations <https://docs.djangoproject.com/en/1.10/ref/models/fields/#error-messages>`_
for additional information.
"""
def formfield(self, **kwargs):
"""
Customising the ``form_class``.
:return: TextField with a custom ``form_class``.
:rtype: django.db.models.TextField
"""
defaults = {'form_class': MarkdownxFormField}
defaults.update(kwargs)
return super(MarkdownxField, self).formfield(**defaults)