最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django-admin怎么使用

    正文概述    2020-06-18   398

    django-admin怎么使用

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制。以下是我最近摸索总结出比较实用的配置。

    应用注册

    若要把app应用显示在后台管理中,需要在admin.py中注册。这个注册有两种方式,我比较喜欢用装饰器的方式。

    先看看普通注册方法。打开admin.py文件,如下代码:

    from django.contrib import admin
    from blog.models import Blog
      
    #Blog模型的管理器
    class BlogAdmin(admin.ModelAdmin):
        list_display=('id', 'caption', 'author', 'publish_time')
         
    #在admin中注册绑定
    admin.site.register(Blog, BlogAdmin)

    admin组件使用

    Django 提供了基于 web 的管理工具.

    Django 自动管理工具是 django.contrib 的一部分.你可以在项目的settings.py 中的 INSTALLED_APPS 看到它:

    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        "app01"
    ]

    django.contrib 是一套庞大的功能集,它是 Django 基本代码的组成部分.

    激活管理工具

    通常我们在生成项目时会在 urls.py 中自动设置好,

    from django.conf.urls import urlfrom django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
    
    ]

    当这一切都配置好后,Django 管理工具就可以运行了.

    使用管理工具

    启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到登陆界面,你可以通过命令 python manage.py createsuperuser 来创建超级用户。

    为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin

    eg:

    models.py

    from django.db import models# Create your models here.class Author(models.Model):
        nid = models.AutoField(primary_key=True)
        name=models.CharField( max_length=32)
        age=models.IntegerField()    # 与AuthorDetail建立一对一的关系
        authorDetail=models.OneToOneField(to="AuthorDetail",on_delete=models.CASCADE)    def __str__(self):
            return self.nameclass AuthorDetail(models.Model):
    
        nid = models.AutoField(primary_key=True)
        birthday=models.DateField()
        telephone=models.BigIntegerField()
        addr=models.CharField( max_length=64)    def __str__(self):
            return str(self.telephone)class Publish(models.Model):
        nid = models.AutoField(primary_key=True)
        name=models.CharField( max_length=32)
        city=models.CharField( max_length=32)
        email=models.EmailField()    def __str__(self):
            return self.nameclass Book(models.Model):
    
        nid = models.AutoField(primary_key=True)
        title = models.CharField( max_length=32)
        publishDate=models.DateField()
        price=models.DecimalField(max_digits=5,decimal_places=2)    
        publish=models.ForeignKey(to="Publish",to_field="nid",on_delete=models.CASCADE)  
        authors=models.ManyToManyField(to='Author',)    def __str__(self):
            return self.title

    admin.py

    from app01.models import Book
    from app01.models import Publish
    from app01.models import Author
    from app01.models import AuthorDetail
    
    admin.site.register(Book)
    admin.site.register(Publish)
    admin.site.register(Author)
    admin.site.register(AuthorDetail)

    admin定制

    在 admin.py 中只需要将 Mode 中的某个类注册,即可在Admin中实现增删改查的功能,如:

    admin.site.register(Book)

    但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin进行操作,如:

    # 方式一:
    class BookConfig(admin.ModelAdmin):
        list_display = ["title","price","publishDate"]
    admin.site.register(Book,BookConfig)  # 第一个参数可以是元祖
    
    # 方式二:
    @admin.register(Book,BookConfig)   # 第一个参数可以是元祖
    class BookConfig(admin.ModelAdmin):
        list_display = ["title","price","publishDate"]

    起源地下载网 » django-admin怎么使用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元