在运行时添加/删除django中的url模式

时间:2017-06-05 09:09:10

标签: python django django-urls

例如,我的urls.py中有一个网址 -

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

现在,对于来自视图的特定操作,我想从urlpatterns中删除此url并在运行时添加新的url。如果可能的话,有可能吗?

1 个答案:

答案 0 :(得分:1)

在运行时更改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