首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:如何更改管理按钮的“站点上的视图”url

Django:如何更改管理按钮的“站点上的视图”url
EN

Stack Overflow用户
提问于 2014-01-13 17:14:34
回答 2查看 1.6K关注 0票数 0

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

我读过“现场查看”按钮使用get_absolute_url()模型函数来实现其行为。

我需要更改网址后面的“查看现场”按钮。我需要重写get_absolute_url()还是编辑其他东西??

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 17:41:18

如果你能避免的话,你不应该改变第三方应用的文件,因为你本质上需要维护应用的一个分支。您可以在管理模板中重写object-tools块,而不是覆盖object-tools。就像这样:

代码语言:javascript
复制
{% 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 (将<modelnamehere>更改为要自定义的模型)

在Django的未来版本(我猜是1.7)中,您可以使用view_on_site来做同样的事情。

票数 1
EN

Stack Overflow用户

发布于 2014-01-13 17:25:58

重写get_absolute_URL()是在Django文档中提出的,因此应该更好。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21097309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档