1. 程式人生 > 其它 >Django專案 反向解析url

Django專案 反向解析url

在專案過程中,urlspy 檔案中的 url都是寫死的 ,如果修改其中的url  那麼其他用到這個url的地方都會報錯

本質:給url匹配模式起別名 ,然後通過別名拿到具體的url路徑

解決方法:在url匹配模式中,定義 name = "別名"

示例:

urls.py檔案中修改:

urlpatterns = [
path('add_publist/', views.add_publist,name="add_publist"),  # 新增出版社資訊
]

html頁面修改如下:
原本:
<a class="btn btn-primary" href="/add_publist/">新增出版社</a>
修改後:
<a class="btn btn-primary" href="{% url "add_publist" %}">新增出版社</a>

views.py檔案修改如下:
from django.urls import reverse #這裡需要匯入
def add_publist(request):
if request.method == "POST":
new_name = request.POST.get("pub_name") # 取出新建立的出版社名稱
models.Publisher.objects.create(name=new_name) # 在表中建立新的出版社名稱
redirect_url = reverse("publist")

return redirect(redirect_url)
# 請求為get時 返回一個頁面
return render(request, "add_publist.html")