zoukankan      html  css  js  c++  java
  • Django模型

     

     

     

    一、设计系统表

     Django提供了完善的模型层来创建和存取数据,它包含所存储数据的必要字段和行为。通常每个模型对应数据库中唯一的一张表,所以,模型避免了我们直接对数据库操作。

    Django模型基本知识:

    1. 每个模型是一个python类,继承django.db.models.Model类。
    2. 该模型的每个属性表示一个数据库字段
    3. 所有这一切,已经给了你一个自动生成数据库访问的API

    打开/sign/models.py 文件,通过模型完成表的创建。

    from django.db import models
    
    # Create your models here.
    #发布会表
    from django.db import models
    class Event(models.Model):
        name = models.CharField(max_length = 100)  #发布会标题
        limit = models.IntegerField()              #参加人数
        status = models.BooleanField()               #状态
        address = models.CharField(max_length = 200) #地址
        start_time = models.DateTimeField('events time') #发布会时间
        create_time = models.DateTimeField(auto_now = True) #创建时间
    
        def __str__(self):
            return self.name
    
    #嘉宾表
    class Guest(models.Model):
        event = models.ForeignKey(Event) #关联发布会ID
        realname = models.CharField(max_length = 64) #姓名
        phone = models.CharField(max_length = 16) #手机号
        email = models.EmailField() #邮箱
        sign = models.BooleanField() #签到状态
    create_time = models.DateTimeField(auto_now = True) #创建时间,自动获取当前时间
    
    class Meta:
        unique_together = ('event','phone')
    
    def __str__(self):
        return self.realname

    当模型创建好后,执行数据库迁移。 

    C:Userssologuest>python3 manage.py makemigrations sign
    Migrations for 'sign':
      signmigrations001_initial.py:
        - Create model Article
        - Create model Event
        - Create model Guest
    C:Userssologuest>python3 manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions, sign
    Running migrations:
      Applying sign.0001_initial... OK

     

     admin 后台管理

    创建发布会和嘉宾表同样可以通过Admin后台管理

    打开/sign/admin.py文件

    admin.py

    from django.contrib import admin
    from sign.models import Event,Guest
    
    admin.site.register(Event)
    admin.site.register(Guest)

    这些代码通知Admin管理工具为这些模块提供界面

    登陆admin后台。 

    显示更多字段:

    修改admin.py

    from django.contrib import admin
    from sign.models import Event,Guest
    
    # admin.site.register(Event)
    # admin.site.register(Guest)
    
    # Register your models here.
    class EventAdmin(admin.ModelAdmin):
        list_display = ['id','name','status','address','start_time']
    
    class GuestAdmin(admin.ModelAdmin):
        list_display = ['realname','phone','email','sign','create_time','event']
    
    admin.site.register(Event,EventAdmin)
    admin.site.register(Guest,GuestAdmin)

    快速生成过滤器和搜索栏:

    from django.contrib import admin
    from sign.models import Event,Guest
    
    # admin.site.register(Event)
    # admin.site.register(Guest)
    
    # Register your models here.
    class EventAdmin(admin.ModelAdmin):
        list_display = ['name','status','start_time','id']
        search_fields = ['name'] #搜索栏
        list_filter = ['status'] #过滤器
    
    class GuestAdmin(admin.ModelAdmin):
        list_display = ['realname','phone','email','sign','create_time','event']
        search_fields = ['realname','phone'] #搜索栏
        list_filter = ['sign'] #过滤器
    
    admin.site.register(Event,EventAdmin)
    admin.site.register(Guest,GuestAdmin)

    search_field用于创建表字段的搜索器,可以设置搜索关键字匹配多个表字段。

    list_filter用于创建字段过滤器。

  • 相关阅读:
    Linux零碎知识
    Xshell连接不上Linux
    Python中获取当前时间 获取当前时间前几天的代码
    重新设置Linux文件共享密码..
    【Python】【解决】UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 1: ordinal not in range(128)
    应该怎么理解 app = Flask(__name__)
    刚才在windows下发现拖拽不了文件了
    Hadoop点滴-何时使用hadoop fs、hadoop dfs与hdfs dfs命令
    Hadoop点滴-Hadoop分布式文件系统
    Hadoop点滴-初识MapReduce(2)
  • 原文地址:https://www.cnblogs.com/aszeno/p/10506355.html
Copyright © 2011-2022 走看看