好的,以下是一个Django Admin 管理工具学习笔记的示例:
Django Admin 管理工具学习笔记
介绍
Django Admin 是一个内置的管理界面,让开发者可以轻松地管理应用程序、数据库等内容。它是基于模型的,这意味着用户只需定义好模型,即可使用Django Admin对其进行管理。
获取管理员权限
为了能够进入Django Admin界面,需要先获取相应的管理员权限。在Django中,默认情况下,只有超级用户才能访问Django Admin。
pythonCopy Codefrom django.contrib.auth.decorators import user_passes_test
@user_passes_test(lambda u: u.is_superuser)
def my_view(request):
# 只有超级用户能够进入此视图
...
注册模型
要使用Django Admin管理模型,需要将其注册到Admin中。
pythonCopy Codefrom django.contrib import admin
from .models import MyModel
admin.site.register(MyModel)
自定义模型管理
通过继承admin.ModelAdmin
类,可以自定义模型管理器的行为。例如,可以定义自定义模板和过滤器。
pythonCopy Codeclass MyModelAdmin(admin.ModelAdmin):
list_display = ('name', 'email', 'phone_number')
list_filter = ('created_at',)
admin.site.register(MyModel, MyModelAdmin)
自定义表单
Django Admin默认会为每个模型生成一个表单,但是它也允许开发者自定义表单。
pythonCopy Codeclass MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ('name', 'email', 'phone_number')
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
admin.site.register(MyModel, MyModelAdmin)
实例
以下是一个简单的示例,展示了如何使用Django Admin管理Product
模型。
models.py
pythonCopy Codefrom django.db import models
class Product(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=8, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
admin.py
pythonCopy Codefrom django.contrib import admin
from .models import Product
class ProductAdmin(admin.ModelAdmin):
list_display = ('name', 'price', 'created_at')
list_filter = ('created_at',)
date_hierarchy = 'created_at'
search_fields = ('name',)
admin.site.register(Product, ProductAdmin)
通过以上配置,我们可以实现对产品进行管理,包括按名称和创建日期搜索产品,按创建日期过滤产品,以及按创建日期进行分层次显示。