簡體   English   中英

在運行時從Django添加/刪除URL模式

[英]Adding/Removing url patterns from django during runtime

例如,我的urls.py-中有一個網址

url(r'^my-url/$', views.my_view)

現在從視圖執行特定操作,我想從urlpatterns中刪除此url,並在運行時添加新的url。 如果可能,怎么可能?

在運行時更改URL處理程序不是最佳實踐,而是可以在db中設置檢查點並處理所有傳入請求

models.py

class Version(models.Model):
    version_number = models.IntegerField()
    is_latest = models.BooleanField(default=False)

urls.py

url(r'^handler/(?P<version>\d+)/$', views.handler)

views.py

from django.shortcuts import get_object_or_404

def handler(request, version):
    obj = get_object_or_404(Version, version_number=4)
    if obj.is_latest:
        return render(request,'base.html')
    else:
        return render(request, 'old.html')

上面的代碼僅授權版本4( /handler/4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM