Django 如何传递分页 ID 和模型 ID?

Django how to pass an id of pagination and model id?

谢谢,我正在 problem.I 使用分页 url 传递一个页面 ID 并且还想传递我的模型驱动程序 ID。如果页面为 1,则 url 为

         *url(r'^rentacar/list/$', extension_views.rentacar_list),*

但是在用户转到下一页后 url 是:

              *url(r'^rentacar/list/(\d+)/$', extension_views.rentacar_list),*

但我实际上想做的是在我试图传递的 url 中引用驱动程序 ID。

我想做的是在我的 url 中获取驱动程序 ID 和页面#。我该怎么做呢?以及我如何改变我的观点并实现它,而它 运行 通过分页

Views.py

@csrf_protect
def rentacar_list(request, page_number=1):

    all_cars = Car.objects.all().order_by('-id')
    if menu_config.menu_item_rentacar_list_show_unavailable == 0:
        all_cars = all_cars.exclude(car_available=0)
    else:
        all_cars = all_cars

    cars_page = Paginator(all_cars, menu_config.menu_item_rentacar_list_pagination)
    args['cars'] = cars_page.page(page_number)
    template = Template.objects.get(template_default__exact=1)    
    template_page = template.template_alias + str("/rentacar/rentacar_cars_list.html")   
    return render(request, template_page, args)

Urls.py

url(r'^rentacar/list/$', extension_views.rentacar_list),
url(r'^rentacar/list/(\d+)/$', extension_views.rentacar_list),

但我想实现:

url(r'^rentacar/list/driver/id/$', extension_views.rentacar_list),
url(r'^rentacar/list/(\d+)/driver/id/$', extension_views.rentacar_list),

你的驱动id不应该在url路径中,你可以在url参数中传输数据,例如:

yourhost/rentacar/list/<page_id>?driver=<driver_id>

得到driver_id形式request,例如:

driver_id = request.GET.get('driver', None)

最后,你可以通过内置分页功能的django ListView重构视图,这里是django ListView documnet django listview

例子

url.py

url(r'^rentacar/list/(\d+)/$', extension_views.rentacar_list),

views.py

def you_view(request, page_number):
    driver_id = request.GET.get('driver', None)

你的要求url

127.0.0.1/rentacar/list/1?driver=2