繁体   English   中英

Django:如何更改管理员按钮的“站点查看” URL

[英]Django: How to change “view on site” url of admin button

在我的应用程序中,我使用的是django-photologue(第3部分应用程序),并且在其默认配置中,“查看网站”管理按钮指向其模板。

我已经阅读过“在网站上查看”按钮使用get_absolute_url()模型函数来实现其行为。

我需要更改“在网站上查看”按钮后面的网址。 我是否需要重写get_absolute_url()或编辑其他内容?

提前致谢。

如果可以避免,则不应更改第三方应用程序的文件,因为本质上您将需要维护该应用程序的分支。 您可以覆盖管理模板中的object-tools块,而不是覆盖get_absolute_url 像这样:

{% extends "admin/change_form.html" %}

{% block object-tools %}
{% if change %}{% if not is_popup %}
  <ul class="object-tools">
    {% block object-tools-items %}
    <li>
        {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
        <a href="{% add_preserved_filters history_url %}" class="historylink">{% trans "History" %}</a>
    </li>
    {% if has_absolute_url %}<li><a href="{% url 'your-custom-view-here' original.pk %}" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif%}
    {% endblock %}
  </ul>
{% endif %}{% endif %}
{% endblock %}

将其另存为templates/admin/photologue/<modelnamehere>/change_form.html的模型templates/admin/photologue/<modelnamehere>/change_form.html (将<modelnamehere>更改为要自定义的模型)

在Django的未来版本(我想是1.7)中,您将可以重写view_on_site方法来执行相同的操作。

在Django文档中提出了重写get_absolute_URL()的建议,所以它应该很好。

请参阅: 其他模型实例方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM