Example
=======

Have you:

- successfully :doc:`installed MarkdownX<installation>`?

- followed the instructions on how to :doc:`get started<getting_started>`?

If so, you are set for the next step. Here you can find comprehensive examples of how to use different **MarkdownX**
features to your advantage.

Model
-----

This is how you implement a **MarkdownX** field in your models. In your :guilabel:`app/models.py`:

.. code-block:: python
    :linenos:

    from markdownx.models import MarkdownxField

    class MyModel(models.Model):
        myfield = MarkdownxField()

... and then, include the form media in the relevant template using ``{{ form.media }}``, like so:

.. code-block:: html

    <form method="POST" action="">{% csrf_token %}
        {{ form }}
    </form>

    {{ form.media }}

.. note::
    The field extends Django's own TextField_ and is saved in the database accordingly.

Form
----
You can also implement **MarkdownX** through the forms. This will be done in your :guilabel:`app/forms.py` as follows:

.. code-block:: python
    :linenos:

    from markdownx.fields import MarkdownxFormField

    class MyForm(forms.Form):
        myfield = MarkdownxFormField()


... and then, include a form's required media in the template using ``{{ form.media }}``:

.. code-block:: html

    <form method="POST" action="">{% csrf_token %}
        {{ form }}
    </form>

    {{ form.media }}


Django Admin
------------
When using the build-in ``MarkdownxModel`` class in your models, just use ``MarkdownxModelAdmin`` in
your :guilabel:`app/admin.py` as follows:

.. code-block:: python
    :linenos:

    from django.contrib import admin
    from markdownx.admin import MarkdownxModelAdmin
    from .models import MyModel


    admin.site.register(MyModel, MarkdownxModelAdmin)



.. _TextField: https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.TextField
