我正在使用的django contrib评论表单:
{% 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>
提交表单后,它会重定向到http://127.0.0.1:8000/comments/posted/?c=..
这意味着它会调用模板django/contrib/comments/templates/comments/posted.html
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 %}
这不会扩展我的项目的base.html。
我需要自定义/覆盖该模板,以便扩展我的项目的base.html。我怎么能这样做?
如果我不能这样做,那么如果我在服务器上传我的django web项目,那么我将如何编辑django/contrib/comments/templates/comments/posted.html
的内容,使其看起来像这样:
{% 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 %}
在本地电脑上,我这次更改/编辑了django/contrib/comments/templates/comments/posted.html
硬编码的内容,以扩展我的项目base.html
。
任何人都可以提出解决这个问题的想法吗?我已经搜索了很多来解决这个问题。
答案 0 :(得分:8)
只需在项目的“模板”目录中覆盖它:
<project_root>/templates/comments/posted.html
在评论应用程序或Django的一般模板文档中似乎没有很好地记录它,但它的作用与overriding admin templates(记录在案)相同。