根据您是使用基于类的视图还是使用标准视图函数,方法会有所不同。
对于基于类的视图,取决于您愿意执行的操作(ListView、DetailView、...),通常您不需要解析 url,只需在 urls.py 中指定参数的名称或直接在类定义中的参数名称。
基于类的视图
urls.py
from mysite.employee.views import EmployeeView
urlpatterns = patterns('',
...
url(r'^employee/(?P<pk>[\d]+)/$', EmployeeView.as_view(), name='employee-detail'),
...
)
员工/views.py
class EmployeeView(DetailView):
model = YourEmployeeModel
template_name = 'employee/detail.html'
当您需要导入DetailView时,请阅读knbk向您指出的文档
就这么简单,您将根据给定的pk 参数获得您的员工。如果不存在会抛出 404 错误。
在基于函数的视图中以类似的方式完成:
urls.py
from mysite.employee.views import EmployeeView
urlpatterns = patterns('',
...
url(r'^employee/(?P<pk>[\d]+)/$', 'mysite.employee.views.employee_detail', name='employee-detail'),
...
)
员工/views.py
from django.shortcuts import get_object_or_404
def employee_detail(request, pk):
""" the name of the argument in the function is the
name of the regex group in the urls.py
here: 'pk'
"""
employee = get_object_or_404(YourEmployeeModel, pk=pk)
# here you can replace this by anything
return HttpResponse(employee)
希望对你有帮助