0

下面是扩展 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/

可能有什么问题???

4

1 回答 1

2

get_urls请参阅文档中的注释框,其中指出那里的 URL 包含管理员的 URL 下。因此,假设您的应用程序是 HRMS 并且您的模型是 EmployeePaySlip,那么该 URL 将是/admin/HRMS/employeepayslip/HRMS/mos/employeepayslip/,这可能不是您想要的。

于 2013-06-10T20:19:51.853 回答