python – Django:URLconf中的变量参数

我一直在寻找这个问题,找不到任何问题,抱歉,如果重复的话.

我正在建立某种电子商务网站,类似于ebay.当我试图浏览“类别”和“过滤器”时,我出现了问题.例如.您可以浏览“监视”类别.这将显示许多监视器和一些过滤器(与ebay完全相同)来应用它们.所以,你去“监视器”,然后你有过滤器,如:

>类型:LCD – LED – CRT
>品牌:ViewSonic – LG – 三星
>最大分辨率:800×600 – 1024×768

并且这些过滤器将附加到URL,以下示例,当您浏览监视器时,URL可能类似于:

store.com/monitors

如果您应用“类型”过滤器:

store.com/monitors/LCD

“牌”:

store.com/monitors/LCD/LG

“最高分辨率”:

store.com/monitors/LCD/LG/1024x768

总而言之,URL结构将类似于:

/category/filter1/filter2/filter3

我无法弄清楚如何做到这一点.问题是过滤器可以变化.我认为在视图中需要使用** kwargs但我不太确定.

你知道如何捕获这种参数吗?

非常感谢!

解决方法:

本,我希望这会对你有所帮助

urls.py

from catalog.views import catalog_products_view

urlpatterns = patterns(
    '',
    url(r'^(?P<category>[\w-]+)/$', catalog_products_view, name="catalog_products_view"),
    url(r'^(?P<category>[\w-]+)/(?P<filter1>[\w-]+)/$', catalog_products_view, name="catalog_products_view"),
    url(r'^(?P<category>[\w-]+)/(?P<filter1>[\w-]+)/(?P<filter2>[\w-]+)/$', catalog_products_view, name="catalog_products_view"),
    url(r'^(?P<category>[\w-]+)/(?P<filter1>[\w-]+)/(?P<filter2>[\w-]+)/(?P<filter3>[\w-]+)/$', catalog_products_view, name="catalog_products_view"),
)

view.py

def catalog_products_view(request, category, filter1=None, filter2=None, filter3=None):
    # some code here

要么

def catalog_products_view(request, category, **kwargs):
    filter1 = kwargs['filter1']
    filter2 = kwargs['filter2']
    ....
    filterN = kwargs['filterN']
    # some code here
上一篇:python – Django网址给出404错误


下一篇:uni-app项目,HBuilderX真机调试之夜神模拟器