zoukankan      html  css  js  c++  java
  • Django admin

    创建超级用户

    python manage.py createsuperuser

    注册需要在admin中使用的表

    # admin.py
    
    from django.contrib import admin
    
    from app01 import models  # 导入models
    
    
    admin.site.register(models.Author)  # 注册models中的表
    admin.site.register(models.Book)
    admin.site.register(models.Publish)

    自定义admin样式

    # admin.py
    
    from django.contrib import admin
    
    from app01 import models  # 导入models


    def set_price(modelAdmin,request,queryset):  # 这个方法用于admin中action下拉列表加功能
      queryset.update(pirce=500)
      set_price.short_description = '修改价格为500'

    class BookAdmin(admin.ModelAdmin):  # 自己定义一个类
      list_display = ('id','name','price','pub_date')  # 列表显示字段
      list_editable = ('name', 'price')  # 设置列表显示的哪些字段可直接修改
      filter_horizontal = ('authors'),  # 设置作者多选字段可筛选
      list_per_page = 3  # 每页显示的记录数,默认为20
      search_fields = ('id', 'name', 'publish__name')  # 设置可按哪些字段进行搜索
      list_filter = ('pub_date', 'publish')  # 在右边出现一个根据定义的字段filter菜单
      ordering = ('puice',)  # 显示时以价格升序
      ordering = ('-price', 'id',)  #
    显示时以价格降序,第二排序字段为id升序

      actions = [set_price,]  # 向action下拉列表增加set_price功能
    admin.site.register(models.Author)  # 注册models中的表 admin.site.register(models.Book,BookAdmin) admin.site.register(models.Publish)
    # models.py
    
    form django.db import models
    
    class Book(models.Model):  # 表名book,django会自动使用项目名+我们定义的表名
      # 如没有自定义主键,django会自动添加一个主键,字段名id 自增
      name = models.CharField(max_length=20,verbose_name='书名')  # 在admin中显示字段名为书名
      price = models.IntegerField(‘价格’)   # 如果verbose_name设置为第一个参数,可不用写verbose_name
      pub_date = models.DateField()   # 字段名pub_date 类型 date (时间戳)
      publish = models.ForeighKey('Publish')  # 创建外键关联到Publish表的id字段,django会自动将该名称改为publish_id  
       # 如果这样写 publish = models.ForeighKey(Publish) 括号内无引号,则必须将Publish类放到Book类的上面
      authors = models.ManyToManyField('Author')  将book与author表做多对多关系
      # django会自动创建一张表(book与author的中间关联表)名称为appname_book_authors
       
      def __str__(self):
        return self.name  # 打印实例对象时显示为self.name
    
    
    #class Book_Author(models.Model):  自己创建第三张表
    #  book = models.ForeignKey('book')
    #  author = models.ForeignKey('Author')
    
    class Publish(models.Model):
      name = models.CharField(max_length=32)
      city = models.CharField(max_length=32)
    
    class Author(models.Model):
      name = models.CharField(max_length=32)
      age = models.IntegerField()
    
      def __str__(self):
        return self.name  
  • 相关阅读:
    activity 之间传递参数
    手动创建一个Activity,完成页面跳转(intent 无参数)
    C++中汉字字符串的截取
    android基础知识清单。
    更改远程仓库
    设计模式六大原则
    事件订阅代码
    Python Mac ssl.SSLError certificate verify failed (_ssl.c:833)
    Python库中常见的 __all__ 变量是干啥的
    Thrift的使用-Python
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9623301.html
Copyright © 2011-2022 走看看