oma*_*mat 2 python django django-admin custom-view
我想在管理中提供一个与 非常相似的自定义视图changelist_view(),但没有指向编辑表单视图的链接。用户将能够选择列表中的项目并应用操作,就像在更改列表表单中一样,但他们无权访问编辑表单。
我认为ModelAdmin类中的结构应该是这样的:
class ProductAdmin(admin.ModelAdmin):
def get_urls(self):
urls = super(ProductAdmin, self).get_urls()
urls += patterns('',
(r'^selectlist/$', self.selectlist_view)
)
return urls
def selectlist_view(self):
return render_to_response(...)
Run Code Online (Sandbox Code Playgroud)
要返回的视图与 非常相似ModelAdmin.changelist_view()。最好的、DRY 的方法是什么?
以下自定义 ModelAdmin 是迄今为止我能想到的最佳解决方案:
class UserModelAdmin(ModelAdmin):
def get_urls(self):
urls = super(UserModelAdmin, self).get_urls()
info = self.model._meta.app_label, self.model._meta.module_name
select_list_url = patterns('',
url(r'^selectlist/$', self.selectlist_view,
name='%s_%s_select' % info)
)
return select_list_url + urls
def selectlist_view(self, request, extra_context=None):
temp_list_display_links = self.list_display_links
self.list_display_links = (None, )
response = self.changelist_view(request, extra_context)
self.list_display_links = temp_list_display_links
return response
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5206 次 |
| 最近记录: |