`
zjxplq
  • 浏览: 40436 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

给Django Admin增加自定义的视图函数

阅读更多

学习http://www.beardygeek.com/2010/03/adding-views-to-the-django-admin/后记录

增加url

有两种方法可以给admin增加url.

方法一,直接在urls.py文件增加,具体操作如下:

(r'^admin/mypage/$', 'myapp.views.my_admin_view'),
(r'^admin/', include(admin.site.urls)),
 

要注意的是必须使用增加的url放在真正的admin urls之前.

方法二,会难一点.通过扩展AdminSite的get_urls()函数,来增加url.

 

View

写view时必须要使用staff_member_required装饰器

from django.contrib.admin.views.decorators import staff_member_required
...
@staff_member_required
def my_admin_view(request):
    # view code
 

当渲染view时,一定要将RequestContext传给模板.

return render_to_response('my_template.html',
  context_instance=RequestContext(request))
 

Template

为了使用自己view展现时更象在admin中,template须扩展自admin的base_site.html模板.

{% extends 'admin/base_site.html' %}
 

 

在模板中还得加入i18n的支持与增加admin media

{% load i18n adminmedia %}
 如果你要增加额外的style,模板中可以使用{% block extrastyle %}.把要增加的javascript放在

 

{% block extrahead %}中

{% load i18n adminmedia %}
 

增加form date widgets

在页面中有包含date字段的form,可以使用admin的form widgets.

from django.contrib.admin import widgets

class AdminForm(forms.Form):
    start_date = forms.DateField(label="Start date",
         widget=widgets.AdminDateWidget())
 

 

然后在模板中增加extrahead block.

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/admin-media/js/core.js"></script>
{{ form.media }}
 

 

在extra styles block中增加admin form css:

 

{{ block.super }}
<link rel="stylesheet" type="text/css" href="/admin-media/css/forms.css" />
 

 

Breadcrumbs

{% block breadcrumbs %}<div class="breadcrumbs"><a href="/admin/">
{% trans "Home" %}</a> > My View</div>{% endblock %}
 

 

在admin index增加链接

 

在index最近动作上方上方增加一个链接.为了做这个,虽重载admin的index.htm

 

在自己的app中templates文件夹中创建一个名为admin的文件夹,然后从django/contrib/admin/templates/中复制文件index.html到这个新建的文件夹中.

在这个文件中,可以看到一个名为"sidebar"的块,在"content-related" div下,放入以下的模板代码:

<div class="module">
  <h2>Admin tools</h2>
    <ul class="actionlist">
      <li class="changelink">
        <a href="/admin/mypage/">My View</a>
      </li>
    </ul>
</div>
 

一切OK


分享到:
评论

相关推荐

    在django admin中添加自定义视图的例子

    这里的`manage_face_image`和`delete_face_image`是你自定义的视图函数,需要在类中定义它们。`admin_view`装饰器确保这些视图只能由有权限的管理员访问。 最后,你需要将你的`FaceAdmin`类与对应的模型`Face`注册...

    Django Admin实现三级联动的示例代码(省市区)

    总结来说,本篇示例代码的核心在于如何通过自定义模板和视图函数在Django Admin中实现三级联动功能,从而增强后台管理界面的用户体验。这对于需要在中国省市区三级行政区划中管理数据的Django项目来说是非常实用的...

    在django admin详情表单显示中添加自定义控件的实现

    在Django的admin后台,有时候我们需要对默认的表单进行定制,特别是在详情页面(detail view)中添加自定义的控件,例如按钮、链接或者其他交互元素。本文将介绍如何在Django admin详情表单中实现这样的功能。 首先...

    admin-stark_adminstark_djangoadmin_Stark_

    "admin-stark_adminstark_djangoadmin_Stark_" 这个标题看起来像是一个项目或软件的命名,它包含了多个关键词,暗示这可能是一个与Django管理后台相关的自定义实现,名为“Admin Stark”。Django是Python编程语言中...

    django 自定义管理系统

    4. **URL配置(URLconf)**:URLconf将URL模式映射到视图函数。每个URL请求都会被路由到对应的视图,然后由视图处理请求并生成响应。 **二、Django后台管理(admin)** Django内置的管理员(admin)应用提供了强大...

    Django Admin设置应用程序及模型顺序方法详解

    `ModelAdmin.index`视图函数负责生成这个列表,而`get_app_list`方法则负责获取并排序这些应用和模型。 默认的`get_app_list`方法首先通过`_build_app_dict`方法构建一个包含所有应用程序及其模型的字典,然后根据...

    python Django框架实现自定义表单提交

    在Django 2.x及更高版本中,可以简化为`request.context_data`或直接在`render()`函数中传递`{'csrf_token': csrf(request)}`。 现在,让我们转向Ajax提交。在Django中使用Ajax提交表单,我们需要手动处理CSRF令牌...

    Django-Admin_后台管理系统_django_

    7. `DjangoAdmin_logs`:可能是一个专门用于记录后台操作日志的模块或应用,帮助跟踪和分析用户行为。 8. `.settings`:这可能是Django项目的配置文件,其中包含了项目特定的设置,如数据库配置、中间件、应用列表...

    Python库 | django_admin_methods-0.1.7-py2.py3-none-any.whl

    `django_admin_methods` 库旨在扩展默认的Django管理后台,允许开发者添加自定义的方法,这些方法可以在admin界面中直接调用,提升开发效率和用户体验。 **核心功能** 1. **自定义管理操作**:使用`django_admin_...

    Django引用ztree实现数据库表导入树状目录

    为了将数据库中的数据表转换为ZTree格式,我们需要编写Django视图函数,查询数据库并格式化数据。数据通常以JSON形式返回,其中包含每个节点的ID、父ID、名称等信息。ZTree需要的数据结构通常是一个嵌套的JSON数组,...

    django开发完美博客

    Django的URLconfs使用正则表达式匹配URL模式,并调用相应的视图函数。这使得URL设计更为灵活和可读。 此外,Django的管理界面(admin)提供了一个内置的后台管理系统,开发者可以在这里添加、修改和删除模型实例。...

    Django视图和URL配置详解

    在这个例子中,URL `^hello/$` 匹配到`hello`视图,用户访问`/hello/`时,Django会调用`hello`视图函数。 **三、Django处理请求的过程** 1. 当用户发出请求时,Django读取`settings.py`中的`ROOT_URLCONF`设置,...

    Django的资产管理系统源码

    3. `urls.py`:定义URL路由,将URL映射到相应的视图函数。 4. `templates`:存放HTML模板文件,定义了用户界面的布局和样式。 5. `static` 和 `media`:分别存储静态资源(如CSS、JS文件)和用户上传的媒体文件。 6....

    Django框架基础教程(一):简单介绍PythonDjango框架.pdf

    - 视图函数使用`render`方法,将数据传递给模板,生成HTML响应。 通过以上介绍,我们可以看到Django提供了一个完整的Web开发框架,简化了开发流程,使得开发者能更专注于业务逻辑,而不是基础架构。对于初学者而言...

    django笔记 django笔记

    Django的URL路由系统允许我们定义URL模式,并将其与视图函数关联。这使得URL结构清晰,代码可读性高。 7. **表单(Forms)**: Django提供了一套强大的表单处理机制,可以自动生成HTML表单,验证用户输入,处理...

    work-record-manager:使用django admin监视,管理和记录我的工作

    虽然Django Admin提供了默认的界面,但开发者可能也自定义了一些模板以满足特定需求。 6. **static** 和 **media** 文件夹:前者通常用于存放应用的静态资源,如CSS、JavaScript和图片,后者用于存储用户上传的媒体...

Global site tag (gtag.js) - Google Analytics