django 引用{% url "name"%} 避免链接硬编码<转>

http://blog.chinaunix.net/uid-11390629-id-4059271.html

前提条件,为每个url指定name且name值要唯一。比如:
项目中的url.py文件:
urlpatterns = patterns('',
    url(r'^$',TemplateView.as_view(template_name='welcome.html'),name="home"),
    url(r'^accounts/', include('accounts.urls', namespace="accounts")),
    url(r'^admin/', include(admin.site.urls)),
)

accounts应用中的url.py文件:
urlpatterns = patterns('',
    url(r'^login/$',  login, name="login"),
    url(r'^logout/$', logout, name="logout"),
    url(r'^register/$', views.register,name="register"),
)

1.template模板中引用:
首页url: "/"
可表示为:{%url "home" %}

应用中的链接url: "/accounts/login"
可表示为:{%url "accounts:login" %} 

next默认赋值:
<input type="hidden" name="next" value="{{ next|escape }}}" />

当跳转到"/home"时,{{ next|add:'/home/' }}这样写就太傻
可写为:<input type="hidden" name="next" value="{%url "home"%}" />

2.views中的引用:
from django.core.urlresolvers import reverse

定向到“/”
HttpResponseRedirect(reverse("home"))

定向到“/accounts/login”
HttpResponseRedirect(reverse("accounts:login"))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
{% extends "admin/base.html" %} {% block content %} <div class="container-fluid"> <div class="row"> <div class="col-md-6"> <h2>药品列表</h2> <table class="table"> <thead> <tr> <th>ID</th> <th>药品名称</th> <th>操作</th> </tr> </thead> <tbody> {% for drug in drugs %} <tr> <td>{{ drug.id }}</td> <td>{{ drug.drug_name }}</td> <td> <a href="{% url 'admin:drug_db_drug_list_change' drug.id %}" class="btn btn-primary btn-sm">编辑</a> <form action="{% url 'admin:drug_db_drug_list_delete' drug.id %}" method="post" class="d-inline"> {% csrf_token %} <button class="btn btn-danger btn-sm">删除</button> </form> </td> </tr> {% empty %} <tr> <td colspan="3">暂无药品</td> </tr> {% endfor %} </tbody> </table> <a href="{% url 'admin:drug_db_drug_list_add' %}" class="btn btn-success">添加新药品</a> </div> <div class="col-md-6"> <h2>药品相互作用</h2> <table class="table"> <thead> <tr> <th>ID</th> <th>药品1</th> <th>药品2</th> <th>相互作用</th> <th>操作</th> </tr> </thead> <tbody> {% for interaction in interactions %} <tr> <td>{{ interaction.id }}</td> <td>{{ interaction.drug1 }}</td> <td>{{ interaction.drug2 }}</td> <td>{{ interaction.interaction }}</td> <td> <a href="{% url 'admin:drug_db_drug_interaction_change' interaction.id %}" class="btn btn-primary btn-sm">编辑</a> <form action="{% url 'admin:drug_db_drug_interaction_delete' interaction.id %}" method="post" class="d-inline"> {% csrf_token %} <button class="btn btn-danger btn-sm">删除</button> </form> </td> </tr> {% empty %} <tr> <td colspan="5">暂无药品相互作用</td> </tr> {% endfor %} </tbody> </table> <a href="{% url 'admin:drug_db_drug_interaction_add' %}" class="btn btn-success">添加新药品相互作用</a> </div> </div> </div> {% endblock %} 为上述代码设置相应的视图和URL配置,并将这些视图和操作注册到Django admin页面中。
最新发布
05-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值