学习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
分享到:
相关推荐
这里的`manage_face_image`和`delete_face_image`是你自定义的视图函数,需要在类中定义它们。`admin_view`装饰器确保这些视图只能由有权限的管理员访问。 最后,你需要将你的`FaceAdmin`类与对应的模型`Face`注册...
总结来说,本篇示例代码的核心在于如何通过自定义模板和视图函数在Django Admin中实现三级联动功能,从而增强后台管理界面的用户体验。这对于需要在中国省市区三级行政区划中管理数据的Django项目来说是非常实用的...
在Django的admin后台,有时候我们需要对默认的表单进行定制,特别是在详情页面(detail view)中添加自定义的控件,例如按钮、链接或者其他交互元素。本文将介绍如何在Django admin详情表单中实现这样的功能。 首先...
"admin-stark_adminstark_djangoadmin_Stark_" 这个标题看起来像是一个项目或软件的命名,它包含了多个关键词,暗示这可能是一个与Django管理后台相关的自定义实现,名为“Admin Stark”。Django是Python编程语言中...
4. **URL配置(URLconf)**:URLconf将URL模式映射到视图函数。每个URL请求都会被路由到对应的视图,然后由视图处理请求并生成响应。 **二、Django后台管理(admin)** Django内置的管理员(admin)应用提供了强大...
`ModelAdmin.index`视图函数负责生成这个列表,而`get_app_list`方法则负责获取并排序这些应用和模型。 默认的`get_app_list`方法首先通过`_build_app_dict`方法构建一个包含所有应用程序及其模型的字典,然后根据...
在Django 2.x及更高版本中,可以简化为`request.context_data`或直接在`render()`函数中传递`{'csrf_token': csrf(request)}`。 现在,让我们转向Ajax提交。在Django中使用Ajax提交表单,我们需要手动处理CSRF令牌...
7. `DjangoAdmin_logs`:可能是一个专门用于记录后台操作日志的模块或应用,帮助跟踪和分析用户行为。 8. `.settings`:这可能是Django项目的配置文件,其中包含了项目特定的设置,如数据库配置、中间件、应用列表...
`django_admin_methods` 库旨在扩展默认的Django管理后台,允许开发者添加自定义的方法,这些方法可以在admin界面中直接调用,提升开发效率和用户体验。 **核心功能** 1. **自定义管理操作**:使用`django_admin_...
为了将数据库中的数据表转换为ZTree格式,我们需要编写Django视图函数,查询数据库并格式化数据。数据通常以JSON形式返回,其中包含每个节点的ID、父ID、名称等信息。ZTree需要的数据结构通常是一个嵌套的JSON数组,...
Django的URLconfs使用正则表达式匹配URL模式,并调用相应的视图函数。这使得URL设计更为灵活和可读。 此外,Django的管理界面(admin)提供了一个内置的后台管理系统,开发者可以在这里添加、修改和删除模型实例。...
在这个例子中,URL `^hello/$` 匹配到`hello`视图,用户访问`/hello/`时,Django会调用`hello`视图函数。 **三、Django处理请求的过程** 1. 当用户发出请求时,Django读取`settings.py`中的`ROOT_URLCONF`设置,...
3. `urls.py`:定义URL路由,将URL映射到相应的视图函数。 4. `templates`:存放HTML模板文件,定义了用户界面的布局和样式。 5. `static` 和 `media`:分别存储静态资源(如CSS、JS文件)和用户上传的媒体文件。 6....
- 视图函数使用`render`方法,将数据传递给模板,生成HTML响应。 通过以上介绍,我们可以看到Django提供了一个完整的Web开发框架,简化了开发流程,使得开发者能更专注于业务逻辑,而不是基础架构。对于初学者而言...
Django的URL路由系统允许我们定义URL模式,并将其与视图函数关联。这使得URL结构清晰,代码可读性高。 7. **表单(Forms)**: Django提供了一套强大的表单处理机制,可以自动生成HTML表单,验证用户输入,处理...
虽然Django Admin提供了默认的界面,但开发者可能也自定义了一些模板以满足特定需求。 6. **static** 和 **media** 文件夹:前者通常用于存放应用的静态资源,如CSS、JavaScript和图片,后者用于存储用户上传的媒体...