【django】校易论坛网源码models.py和admin.py

from django.db import models
from django.db.models.fields.files import ImageField
from mptt.models import MPTTModel
from mptt.models import TreeForeignKey
from ckeditor.fields import RichTextField


# 省
class Province(models.Model):
    province_name=models.CharField(max_length=20,null=True) # 省名称
    
    def __unicode__(self):
        return self.province_name
# 市
class City(models.Model):
    city_name=models.CharField(max_length=20,null=True) # 城市名称
    city_pro_id=models.IntegerField() # 外键 城市所在的省份
    
    def __unicode__(self):
        return self.city_name
    

# 学校表    
class School(models.Model):
    school_id=models.IntegerField() # 学校编号对应json里值
    school_name=models.CharField(max_length=32) #学校名称
    school_city_id=models.IntegerField() # 外键 学校所在的城市
    school_address=models.CharField(max_length=256) # 学校地址
    school_grade=models.CharField(max_length=10,null=True) # 学校等级 
    
    def __unicode__(self):
        return self.school_name


# 用户表     
class Player(models.Model):
    player_username=models.CharField(max_length=32,unique=True) # 用户名
    player_password=models.CharField(max_length=64) # 密码
    player_tel=models.CharField(max_length=128,null=True,blank=True,unique=True) # 电话
    player_mail=models.CharField(max_length=128,null=True,blank=True,unique=True) # 邮箱 
    player_school_id=models.IntegerField(default=1) # 学校
    player_photo=ImageField(upload_to="img/useravatar/",default="/media/img/useravatar/default.png") # 头像
    create_time=models.DateTimeField(auto_now_add=True) # 注册时间
    last_time=models.DateTimeField(null=True,blank=True) # 最后登录时间
    invitenum=models.IntegerField(default=0) # 邀请数
    bannedstatus=models.IntegerField(default=1) # 是否禁用 0开通 -1禁用 

    def __unicode__(self):
        return self.player_username
   
   

# 货品 
class Goods(models.Model):
    goods_school_id=models.IntegerField() # 外键 校园
    goods_author_id=models.IntegerField() # 外键 发布者
    goods_title=models.CharField(max_length=32) # 标题
    goods_firstphoto=models.ImageField(upload_to="img/goodspic/%Y%m%d/",null=True,blank=True) # 首图
    goods_detail=models.CharField(max_length=256) # 详情说明
    goods_views=models.PositiveIntegerField(default=0) # 浏览数
    goods_collects=models.IntegerField(default=0) # 收藏数
    goods_orgprice=models.FloatField(default=0.0) # 原价   
    goods_price=models.FloatField(default=0.0) # 价格
    goods_createtime=models.DateTimeField(null=True,blank=True) # 创建时间
    goods_updatetime=models.DateTimeField(null=True,blank=True) # 更新时间
    goods_del=models.IntegerField(default=1) # 是否删除 1未删  -1已删
    goods_trademethod=models.IntegerField(default=0) # 交易模式 1线上交易 0中介交易 -1线下交易
    goods_newold=models.FloatField(default=10) # 新旧程度 10全新 9-0新
    limitminute=models.DateTimeField(null=True,blank=True) # 限制分钟
    
    class Meta:
        unique_together=("goods_author_id","limitminute")
    
    def changecollects(self,num=1):
        self.goods_collects+=num
        self.save(update_fields=["goods_collects"])
    
    def __unicode__(self):
        return self.goods_title
 
# 评论   
class Comments(MPTTModel):
    reply_to=models.ForeignKey(Player,on_delete=models.CASCADE,null=True,blank=True,related_name="replyers") # 关联被回复人
    replyname=models.CharField(max_length=32,null=True,blank=True) # 被回复人的姓名
    commentuser_id=models.IntegerField(null=True,blank=True) # 评论人id
    commentusername=models.CharField(max_length=32,null=True,blank=True) # 评论人姓名
    body=RichTextField() # 评论内容
    parent=TreeForeignKey("self",on_delete=models.CASCADE,null=True,blank=True,related_name="children",db_index=True) # 树形结构 
    goods_id=models.IntegerField() # 外键商品id
    comment_time=models.DateTimeField(auto_now_add=True) # 评论时间
    limittimes=models.DateTimeField(null=True,blank=True) #限制时间
    
    class Meta:
        unique_together=("commentuser_id","limittimes")
    
    def __unicode__(self):
        return self.content
    
    class MPTTMeta:
        order_insertion_by=["comment_time"]
 
 
    
# 收藏货品表
class Collects(models.Model):
    collects_goods_id=models.IntegerField() # 外键 货品
    collects_time=models.DateTimeField(auto_now_add=True) # 收藏时间
    collects_player_id=models.IntegerField() # 外键 收藏者id
    
    class Meta:
        unique_together=("collects_goods_id","collects_player_id")
    
    def __unicode__(self):
        return self.collects_goods

# 货品图片表
class Goodspic(models.Model):
    goods_pic=models.ImageField(upload_to="img/goodspic/%Y%m%d/",null=True,blank=True) # 图片
    pic_goods_id=models.IntegerField() # 外键 所属的货品
    
    def __unicode__(self):
        return self.goods_pic


# 邀请表
class Invites(models.Model):
    beinvite_name_id=models.IntegerField()# 关联被邀请者id
    invite_name_id=models.IntegerField() # 关联邀请者id
    invite_time=models.DateTimeField(auto_now_add=True) # 邀请时间
    invite_status=models.IntegerField(default=-1) # 邀请状态 -1未激活 1激活  登录才算激活
    invite_jf=models.IntegerField(default=0) # 获得积分 默认为0
    
    def __unicode__(self):
        return self.beinvite_name

# 签到表
class Signin(models.Model):
    signtime=models.DateTimeField(null=True,blank=True) # 签到时间
    signip=models.CharField(max_length=32,null=True,blank=True) # 签到ip
    signstatus=models.IntegerField(default=-1) # 签到状态 -1未签到 1签到
    sign_jf=models.IntegerField(default=0) # 签到获得积分 默认为0
    sign_player_id=models.IntegerField() # 用户id
    sign_date=models.DateTimeField(null=True,blank=True) # 签到日期
    
    class Meta:
        unique_together=("sign_player_id","sign_date")
    
    def __unicode__(self):
        return self.signtime
    
    
# 提现表
class Withdraw(models.Model):
    txjb=models.FloatField() # 提现金币
    txfee=models.IntegerField() # 提现手续费
    txapplicationtime=models.DateTimeField(auto_now_add=True) # 提现申请时间
    txreceptiontime=models.DateTimeField(null=True,blank=True) # 提现受理时间
    txstatus=models.IntegerField(default=-1) # 受理状态 -1未受理 1已受理
    
    def __unicode__(self):
        return self.txjb

# 账户明细类型
class Adtype(models.Model):
    typename=models.CharField(max_length=32) # 账户明细类型 1充值豆币  2兑换豆点 3签到奖励 4邀请奖励 5发布商品 6更新商品 7提现 8提现手续费 9新用户
    
    def __unicode__(self):
        return self.typename
        

# 账户明细表
class Accountdetail(models.Model):
    detailtype_id=models.IntegerField() # 外键 所属类型id
    adplayer_id=models.IntegerField() # 关联用户id
    detailtime=models.DateTimeField(auto_now_add=True) # 时间
    changejf=models.IntegerField(default=0) # 变动积分
    currentjf=models.IntegerField(default=0) # 当前积分
    changejb=models.IntegerField(default=0) # 变动金币
    currentjb=models.IntegerField(default=0) # 当前金币
    detailremark=models.CharField(max_length=32) # 明细备注
    
    def __unicode__(self):
        return self.detailtype

    
# 意见反馈表
class FeedBack(models.Model):
    feedbackcontent=models.CharField(max_length=256) # 意见反馈内容
    feedbackauth_id=models.IntegerField() # 外键 所属的用户id
    feedbacktime=models.DateTimeField(auto_now_add=True) # 时间
    limittime=models.DateTimeField(null=True,blank=True) # 限制时间
    
    class Meta:
        unique_together=("feedbackauth_id","feedbackcontent","limittime")
    
    def __unicode__(self):
        return self.feedbackcontent

#投诉
class Report(models.Model):
    reportcontent=models.CharField(max_length=256) # 投诉内容
    reportauth_id=models.IntegerField() # 投诉者id
    bereportgoods_id=models.IntegerField() # 被投诉商品id
    reporttime=models.DateTimeField(null=True,blank=True) # 投诉时间
    class Meta:
        unique_together=("reportauth_id","bereportgoods_id")
    
    def __unicode__(self):
        return self.reportcontent

# 管理员表
class Boss(models.Model):
    bossname=models.CharField(max_length=64)
    bosspsw=models.CharField(max_length=64)
    def __unicode__(self):
        return self.bossname    
    
 
 
    

========================================

from django.contrib import admin

from app import models


# Register your models here. 

admin.site.register(models.School)
admin.site.register(models.Player)
admin.site.register(models.Goods)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

py编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值