1.新建Model

1.users数据

1.在apps/users/models.py中:

from datetime import datetime
from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.

class UserProfile(AbstractUser):
    """
    管理员
    """
    name=models.CharField(max_length=30,null=True,blank=True,verbose_name='姓名')
    mobile=models.CharField(max_length=11,null=True,blank=True,verbose_name='电话')

    class Meta:
        verbose_name='管理员'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

class WxUsers(models.Model):
    """
    微信用户
    """
    open_id=models.CharField(max_length=64,null=True,blank=True,verbose_name='OpenId')
    token=models.CharField(max_length=64,null=True,blank=True,verbose_name='token')
    nickName=models.CharField(max_length=30,null=True,blank=True,verbose_name='微信名')
    avatarUrl=models.CharField(max_length=200,null=True,blank=True,verbose_name='用户头像URL')
    gender = models.CharField(max_length=4, choices=((',
                              verbose_name='性别')
    province=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在省')
    city=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在市')
    country=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在旗县区')
    longitude=models.CharField(max_length=10,null=True,blank=True,verbose_name='经度')
    latitude=models.CharField(max_length=10,null=True,blank=True,verbose_name='纬度')
    last_login_time = models.DateTimeField(default=datetime.now, verbose_name="最后登录时间")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='微信用户'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.nickName

2.在settings.py中增加配置项

AUTH_USER_MODEL='users.UserProfile'

3.执行数据更新命令:

python manage.py makemigrations
python manage.py migrate

2.wish数据

1.apps/wish/models.py中

from django.db import models
from users.models import WxUsers,UserProfile
from datetime import datetime
from django.utils.safestring import mark_safe
# Create your models here.

class Wish(models.Model):
    """
    愿望表
    """
    wxuser=models.ForeignKey(WxUsers,on_delete=models.CASCADE)
    content=models.CharField(max_length=200,default='',verbose_name='愿望内容',help_text='最多200字')
    status=models.CharField(max_length=8, choices=((',
                              verbose_name='阶段')
    pv_num=models.IntegerField(default=0,verbose_name='浏览数')
    up_num=models.IntegerField(default=0,verbose_name='点赞数')
    share_num=models.IntegerField(default=0,verbose_name='转发数')
    bb_num=models.IntegerField(default=0,verbose_name='评论数')
    end_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='愿望表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.content

class News(models.Model):
    """
    新闻表
    """
    user=models.ForeignKey(UserProfile,on_delete=models.CASCADE)
    banner=models.ImageField(max_length=200, upload_to='banner/',verbose_name='轮播图')
    title=models.CharField(max_length=15,default='',verbose_name='新闻标题',help_text='最多15字')
    content=models.CharField(max_length=800,default='',verbose_name='新闻正文',help_text='最多800字')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='新闻表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.title

    def image_url(self):
        return mark_safe('<img src="/media/{0}" class="field_img">'.format(self.banner))

    image_url.short_description = '轮播图'

class Images(models.Model):
    """
    新闻图片
    """
    image = models.ImageField(max_length=200, upload_to='images/')
    news=models.ForeignKey(News, verbose_name="新闻", blank=True,null=True,on_delete=models.CASCADE)
    add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')

    class Meta:
        verbose_name = "新闻图片"
        verbose_name_plural = verbose_name

    def image_url(self):
        return mark_safe('<img src="/media/{0}" class="field_img">'.format(self.image))

    image_url.short_description = '图片'

2.安装 pillow包(做图片处理的)

pip install pillow

3.执行数据更新命令:

python manage.py makemigrations
python manage.py migrate

3.user_operation数据

1.apps/user_operation/models.py中

from django.db import models
from datetime import datetime
from users.models import WxUsers,UserProfile
from wish.models import Wish
# Create your models here.

class Message(models.Model):
    """
    评论表,消息表
    """
    user_send=models.ForeignKey(WxUsers,on_delete=models.CASCADE,verbose_name='发出方',related_name='send')
    user_receive = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='接收方', related_name='receive')
    wish=models.ForeignKey(Wish,on_delete=models.CASCADE,verbose_name='被评论的愿望')
    content = models.CharField(max_length=30, default='', verbose_name='内容', help_text='最多30字')
    is_read=models.BooleanField(default=False,verbose_name='是否已读')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='评论表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.content

class Pick(models.Model):
    """
    点赞表
    """
    user = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='点赞者')
    wish = models.ForeignKey(Wish, on_delete=models.CASCADE, verbose_name='被点赞的愿望')
    action=models.BooleanField(default=True,verbose_name='行为',help_text='true是点赞false是取消点赞')

    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='点赞表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.user

class Share(models.Model):
    """
    分享表
    """
    user = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='分享者')
    wish = models.ForeignKey(Wish, on_delete=models.CASCADE, verbose_name='被分享的愿望')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='分享表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.user

class Notice(models.Model):
    """
    系统通知表(超越私信)
    """
    admin=models.ForeignKey(UserProfile,on_delete=models.CASCADE)
    content = models.CharField(max_length=200, default='', verbose_name='内容', help_text='最多200字')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='系统通知表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.content

2.执行数据更新命令:

python manage.py makemigrations
python manage.py migrate

越光后端开发——ygapi(2.新建Model)的更多相关文章

  1. 越光后端开发——ygapi(3.引入xadmin)

    1.引入xadmin 1.将xadmin文件夹放入extra_apps目录下: 2.在每个app下新建adminx.py 1.apps/users/目录下新建adminx.py: import xad ...

  2. 越光后端开发——ygapi(1.新建项目ygapi、新建MySQL数据库yg、项目连接数据库)

    1.新建MySQL数据库 show databases;//查看已经有的数据库 create database yg; 2.新建项目ygapi 1.使用pycharm新建django项目取名ygapi ...

  3. 超越村后端开发(2:新建models.py+xadmin的引入)

    1.新建Model 1.users数据 1.在apps/users/models.py中: from datetime import datetime from django.db import mo ...

  4. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史

    ---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...

  5. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  6. (译)Windows Azure:移动后端开发的主要更新

    Windows Azure:移动后端开发的主要更新 这周我们给Windows Azure释出了一些很棒的更新,让云上的移动应用开发明显的简单了.这 些新功能包括: 移动服务:定制API支持移动服务:G ...

  7. 奉上简单的.Net后端开发模板

    假定一个场景,开始做开发的你,领导走到你的面前说道:"小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你",当时你内心读白: ...

  8. 后端开发使用pycharm的技巧

    后端开发使用pycharm的技巧 目录 后端开发使用pycharm的技巧 1.使用说明 2.database 3.HTTP Client 1.使用说明 首先说明,本文所使用的功能为pycharm专业版 ...

  9. Java 后端开发常用的 10 种第三方服务

    请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题. 严格意义上 ...

随机推荐

  1. 虚拟机安装macos 分辨率不正常修改不了,不能全屏如何解决

    1.苹果在OSX 10.11之后启动了一个System Integrity Protection (SIP),这个保护系统防止/library/preferences/systemconfigurat ...

  2. Spark之Yarn提交模式

    一.Client模式 提交命令: ./spark-submit --master yarn --class org.apache.examples.SparkPi ../lib/spark-examp ...

  3. Left Jion等价SQL猜想验证

    猜想:以下两条SQL等价 select * from A left join B on A.ID=B.BID and B.BName=N'小明' select * from A left join ( ...

  4. 【原】Java学习笔记020 - 面向对象

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 成员方法的参数列表 ...

  5. 浅谈TCP IP协议栈(二)IP地址

    上一节大致了解TCP/IP协议栈是个啥东西,依旧是雾里看花的状态,有很多时候学一门新知识时,开头总是很急躁,无从下手,刚学会一点儿,却发现连点皮毛都不算,成就感太低,所以任何时候学习最重要的是要在合适 ...

  6. 【Python 补充01】Python运算符

    Python运算符 举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. 1.算术运算符 + - * / # 加减乘除 % # 取模(返回除 ...

  7. 【Python 10】汇率兑换3.0(while循环)

    1.案例描述 设计一个汇率换算程序,其功能是将美元换算成人民币,或者相反. 2.0增加功能:根据输入判断是人民币还是美元,进行相应的转换计算 3.0增加功能:程序可以一直运行,知道用户选择退出 2.案 ...

  8. sbt安裝與配置

    官方下載地址:https://www.scala-sbt.org/download.html?spm=a2c4e.11153940.blogcont238365.9.42d147e0iF8dhv 解压 ...

  9. Idea+Maven创建scala项目

    1.选择Create New Project 2.如下图选择,然后下一步 3.一直Next,填写groupID,artifactid,projectName之后等待IDEA初始化. 4.IDEA完成初 ...

  10. p1305 新二叉树

    #include<cstdio> #include<iostream> #include<cstring> using namespace std; int n; ...