cola
cola

Reputation: 12466

How can i override django contrib comments template?

The django contrib comments form i'm using:

{% get_comment_form for post as form %}
<form action="{% comment_form_target %}" method="post">{% csrf_token %}
    {% if next %}
        <div><input type="hidden" name="next" value="{{ next }}" /></div>
    {% endif %}
    {% for field in form %}
        {% if field.is_hidden %}
            <div>{{ field }}</div>
        {% else %}
            {% if field.name == 'comment' %}
            {% if field.errors %}{{ field.errors }}{% endif %}
            <p
                {% if field.errors %} class="error"{% endif %}
                {% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %}>
                {{ field.label_tag }} {{ field }}
            </p>
            {% endif %}             
        {% endif %}
    {% endfor %}
    <p class="submit">
        <input type="submit" name="post" class="submit-post" value="{% trans "Post" %}" />
    </p>
</form>

After submitting the form, it redirects to http://127.0.0.1:8000/comments/posted/?c=..

That means it calls the template django/contrib/comments/templates/comments/posted.html

The content of django/contrib/comments/templates/comments/posted.html:

{% extends "comments/base.html" %}
{% load i18n %}

{% block title %}{% trans "Thanks for commenting" %}.{% endblock %}

{% block content %}
<h1>{% trans "Thank you for your comment" %}.</h1>
{% endblock %}

That doesn't extends my project's base.html.

I need to customize/override that template so that it extends my project's base.html. How can i do that?

If i can't do that, then if i upload my django web project on server, then how would i edit the content of django/contrib/comments/templates/comments/posted.html so that it looks like that:

{% extends "path/to/myproject/templates/base.html" %}
{% load i18n %}

{% block title %}{% trans "Thanks for commenting" %}.{% endblock %}

{% block content %}
<h1>{% trans "Thank you for your comment" %}.</h1>
{% endblock %}

On local pc, for this time i changed/edited the content of django/contrib/comments/templates/comments/posted.html hard-coded to extends my project base.html.

Can anyone give some idea to solve this? I have searched a lot to solve this.

Upvotes: 1

Views: 1291

Answers (1)

Chris Pratt
Chris Pratt

Reputation: 239380

Just override it in your project's "templates" directory:

<project_root>/templates/comments/posted.html

It doesn't seem to be well documented in either the comments app or Django's general template documentation, but it works the same as overriding admin templates (which is documented).

Upvotes: 10

Related Questions