• 58.1 BBS


    1.BBS表关系

    记忆:

     2.创建表   看点:1.userInfo 表继承AbstractUser(即使用django自带的字段,并可以扩展自己的字段)  并在setting文件中配置    auth模块功能不受影响

                                 2.  多对多表关系创建 关系表字段可扩展,

       

    # 告诉 django 使用UserInfo为user表
    AUTH_USER_MODEL = 'app01.UserInfo'
    from django.db import models
    from django.contrib.auth.models  import  AbstractUser
    # Create your models here.
    #用户表继承auth_user表
    class  UserInfo(AbstractUser):
        phone = models.BigIntegerField(null=True)
        #用户上传
        avatar = models.FileField(upload_to='avatar/',default='avatar/default.png')
        create_time = models.DateField(auto_now_add=True)
    
        blog = models.OneToOneField(to='Blog')
    
    class Blog(models.Model):
        site_name = models.CharField(max_length=32)
        site_title = models.CharField(max_length=64)
        #该字段用来模拟每个人的站点央视
        site_theme = models.CharField(max_length=64)
    
    
    class  Category(models.Model):
        name = models.CharField(max_length=32)
    
        blog = models.ForeignKey(to='Blog')
    
    
    class  Tag(models.Model):
        name = models.CharField(max_length=32)
    
        blog = models.ForeignKey(to='Blog')
    
    class  Article(models.Model):
        title = models.CharField(max_length=64)
        #摘要
        desc = models.CharField(max_length=254)
        content = models.TextField()
        create_time = models.DateField(auto_now_add=True)
    
        #一对多分类表
        category = models.ForeignKey(to='Category')
    
        #多对多标签表
        tags = models.ManyToManyField(to='Tag',through='Article2Tag',through_fields=('article','tag'))
        #一对多个人站点
        blog = models.ForeignKey(to='Blog')
    
        #数据库优化设计
        comment_num = models.BigIntegerField(null=True)
        up_num = models.BigIntegerField(null=True)
        down_num = models.BigIntegerField(null=True)
    
    class Article2Tag(models.Model):
        article = models.ForeignKey(to='Article')
        tag = models.ForeignKey(to='Tag')
    
    
    
    
    class  UpAndDown(models.Model):
        user = models.ForeignKey(to='UserInfo')
        article = models.ForeignKey(to='Article')
        is_up = models.BooleanField()
    
    
    class Comment(models.Model):
        user = models.ForeignKey(to='UserInfo')
        article = models.ForeignKey(to='Article')
        content = models.CharField(max_length=254)
        comment_time = models.DateField(auto_now_add=True)
        # 自关联
        parent  = models.ForeignKey(to='self', null=True)
  • 相关阅读:
    springmvc整合mybatis框架源码 bootstrap
    观察者模式与.Net Framework中的委托与事件
    C#类型基础——学习笔记一
    知识图谱简介及常见应用场景
    Go语言实现bitmap算法
    互联网公司不同发展阶段需要什么样的技术负责人
    Go语言中使用切片(slice)实现一个Vector容器
    Go语言中defer语句使用小结
    使用interface与类型诊断机制判断一个类型是否实现了某个方法
    互联网产品发掘种子用户和意见领袖的方法
  • 原文地址:https://www.cnblogs.com/bigbox/p/12495048.html
Copyright © 2020-2023  润新知