在这里我将为您提供使用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技术站