以下是扩展ModelAdmin并使用我们自己的页面的代码。但是,正则表达式没有被接受。下面给出了匹配的正则表达式列表,但是我尝试扩展的正则表达式没有被使用,因此不在列表中。谁能请帮忙???
class EmployeePayslipAdmin(admin.ModelAdmin):
"""docstring for PayslipAdmin"""
def get_urls(self):
from django.conf.urls.defaults import patterns, url
def wrap(view):
def wrapper(*args, **kwargs):
return self.admin_site.admin_view(view)(*args, **kwargs)
return update_wrapper(wrapper, view)
info = self.model._meta.app_label, self.model._meta.module_name
urls = super(EmployeePayslipAdmin, self).get_urls()
my_urls = patterns('',
url(
r'/HRMS/mos/employeepayslip/',
wrap(self.employee_view),
name='%s_%s_payslip' % info),
)
print info
return my_urls + urls
def employee_view(self,request, id):
print "working"
return render_to_response(
'mytemplate.html',
{'list' : Employee.objects.all()},
RequestContext(request,{}),
)
这段代码不知何故不起作用。我试图使用该URL,但django不接受它。它给出了它访问的URL列表,而上面的列表不是其中之一。
Using the URLconf defined in NGOMgt.urls, Django tried these URL patterns, in this order:
^admin/ ^$ [name='index']
^admin/ ^logout/$ [name='logout']
^admin/ ^password_change/$ [name='password_change']
^admin/ ^password_change/done/$ [name='password_change_done']
^admin/ ^jsi18n/$ [name='jsi18n']
^admin/ ^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$ [name='view_on_site']
^admin/ ^(?P<app_label>\w+)/$ [name='app_list']
^admin/ ^Accounts/recievefund/
^admin/ ^Accounts/payfund/
^admin/ ^auth/group/
^admin/ ^HRMS/employee/
^admin/ ^Project/project/
^admin/ ^Accounts/paymenthead/
^admin/ ^Project/projectprogress/
^admin/ ^HRMS/employeepayslip/
^admin/ ^auth/user/
^admin/ ^Accounts/incomehead/
^admin/ ^sites/site/
^admin/ ^HRMS/payslip/
^grappelli/
可能出错了?
答案 0 :(得分:2)
请参阅get_urls
docs中的注释框,其中指出了管理员网址下的所包含的网址。因此,假设您的应用是HRMS而您的模型是EmployeePaySlip,那么该网址将为/admin/HRMS/employeepayslip/HRMS/mos/employeepayslip/
,这可能不是您想要的。