扩展Django Admin View无法正常工作

时间:2013-06-10 18:40:10

标签: django django-models django-admin django-views

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

可能出错了?

1 个答案:

答案 0 :(得分:2)

请参阅get_urls docs中的注释框,其中指出了管理员网址下的所包含的网址。因此,假设您的应用是HRMS而您的模型是EmployeePaySlip,那么该网址将为/admin/HRMS/employeepayslip/HRMS/mos/employeepayslip/,这可能不是您想要的。