Django关于admin的使用技巧和知识点

在这里我将为您提供使用Django admin的一些技巧和知识点。

1.创建管理员账户

在使用Django的admin之前,我们需要先创建一个管理员账户,可以通过执行以下命令来创建管理员账户:

python manage.py createsuperuser

接着,按照提示输入账户名、邮箱和密码即可。

2.自定义Django admin

在Django中,可以通过自定义admin的方式,修改默认的表单和显示效果。

首先需要在admin.py文件中导入ModelAdmin类,然后通过继承这个类,自定义需要修改的表单和显示效果,例如:

from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'created_at', 'status')
    list_filter = ('status', 'created_at')
    search_fields = ('title', 'content')

admin.site.register(Post, PostAdmin)

在这个例子中,我们自定义了PostAdmin类,并修改了该类在Django admin中的显示效果。

可以看到,我们在list_display中指定了title、created_at和status属性,它们将出现在文档列表中。在list_filter中,我们指定了在右侧显示的过滤器,而在search_fields中,我们指定了可以在搜索框中搜索的字段。

3.过滤器

Django admin 的过滤器可以方便地过滤页面对象,如日期过滤器、数字范围、选择相关属性等。

使用过滤器非常简单,只需要在Django admin界面的右侧选择要过滤的选项即可。举个例子,假设我们要按照发布日期筛选文档,我们可以在Django Admin中选择"Created at" 过滤器,这将显示一个日期过滤器,让我们可以按照文档的创建日期过滤文档。

4.添加菜单

Django admin默认为我们提供了许多功能菜单,但是我们也可以添加自己的菜单。

在admin.py文件中重写get_urls()方法,即可实现自定义菜单的功能,例如:

from django.urls import path

class MyAdminSite(admin.AdminSite):
    def get_urls(self):
        urls = super().get_urls()
        custom_urls = [
            path('my_view/', self.admin_view(my_view), name='my_view'),
        ]
        return custom_urls + urls

admin_site = MyAdminSite(name='myadmin')

在这个示例中,我们重写了get_urls()方法,添加了一个名为my_view的URL路由。这样,我们就可以在Django admin中添加我们自己的菜单,并跳转到my_view页面。

5.权限管理

Django admin 提供了完善的权限管理功能,可以让我们控制不同用户对不同对象的访问权限。

例如,我们可以通过设置User和Group模型的权限来控制用户和群组的访问权限。

为一个user设置权限非常简单,只需要在Django admin的页面上为该user添加相应的权限即可。

6.文件上传

Django admin允许用户上传文件(如图片、文本文件等)。为了在Django admin中执行文件上传操作,我们需要定义一个ModelAdmin类,并使用它来注册我们的模型。

这个ModelAdmin类需要定义两个方法:

formfield_for_foreignkey():对外键的处理
formfield_for_manytomany():对多对多关系的处理

举个例子,我们可以通过以下代码,自定义图片的上传及验证:

from django.contrib import admin
from django.forms import ImageField

class MyModelForm(forms.ModelForm):
    image = ImageField()

    class Meta:
        model = MyModel
        fields = '__all__'

class MyModelAdmin(admin.ModelAdmin):
    form = MyModelForm

admin.site.register(MyModel, MyModelAdmin)

在这个示例中,我们自定义了一个表单类MyModelForm,这个表单类包含了一个ImageField,可以用于上传和验证图片。

此外,我们还定义了一个MyModelAdmin类,将上面定义的表单类与我们需要修改的模型MyModel关联起来。

这样,当我们在Django admin中上传图片时,它将检查此图片的格式,并在保存文件之前进行验证。

以上就是关于Django admin的使用技巧和知识点的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django关于admin的使用技巧和知识点 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • django云端留言板实例详解

    一、Django云端留言板实例详解 这篇文章将详细讲解如何使用Django创建一个云端留言板的实例。 安装Django和必要的数据库驱动 在开始之前,需要先安装Django以及相应的数据库驱动。可以通过以下命令安装: pip install Django pip install django-mysql 创建Django项目 使用Django创建一个新项目,…

    Django 2023年5月15日
    00
  • windows下简单部署django+vue项目(打包后)

      使用场景: 1. 自己公司内部用,没准备linux时候。 2. 不用nginx,不用uwsgi,不用node部署vue   实现思路: vue代码打包后,生成html、css、js文件,  css、js等把他搞到django的static目录下,index.html搞到template目录下,之后访问任意路由先做api和static匹配,最后没有选择了直…

    Django 2023年4月11日
    00
  • Django初识

    web框架 Web应用框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等,可提升代码的可再用性。简单地说,就是你用别人搭建好的舞台来做表演,用别人做好的模板进行功能扩展。python的web应用框架主要有django,Tornado。 MVC模式和MTV模式 MVC全名是Model View Controll…

    Django 2023年4月11日
    00
  • django中将views.py中的python方法传递给html模板文件

    常规的模板渲染 from django.db import models # Create your models here. class ArticalType(models.Model): caption = models.CharField(max_length=16) class Category(models.Model): caption = m…

    Django 2023年4月12日
    00
  • Django模板中的超链接配置

    在Django搭建的网站中,想配置: http://127.0.0.1:8000/docs/     访问’docs’页面 http://127.0.0.1:8000/charts/    访问’charts’页面 http://127.0.0.1:8000/          也是访问’docs’页面 并且,给几个标签配上以上页面的超链接。方法二比较直接,…

    Django 2023年4月11日
    00
  • python django 访问static静态文件

    settings 文件配置: STATIC_URL = ‘/static/’ STATICFILES_DIRS = ( os.path.join(BASE_DIR, ‘static’),)PROJECT_ROOT = os.path.dirname(__file__) STATICFILES_DIRS = (os.path.join(PROJECT_ROOT…

    Django 2023年4月10日
    00
  • Django drf使用Django自带的用户系统的注册功能

    下面我将为您详细讲解Django DRF如何使用Django自带的用户系统进行注册: 1. 前置条件 在使用Django DRF进行用户注册之前,我们需要确保以下条件已经满足: 安装了Django DRF; 配置了Django自带的用户系统; 配置了Django的URL路由; 配置了Django的视图View。 2. 配置Django DRF 首先,我们需要…

    Django 2023年5月16日
    00
  • Vue+Django项目部署详解

    我来为您详细讲解“Vue+Django项目部署详解”的完整攻略。 1. 环境准备 在进行Vue+Django项目部署之前,我们需要准备好以下环境: 一台Linux服务器,最好是Ubuntu系统 安装Docker和Docker Compose 安装Nginx和Supervisor 如果您还没有安装上述环境,可以参考以下博客进行安装: Docker和Docker…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部