newmediamonitoring/dashboard/models.py

830 lines
32 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import uuid
from django.contrib.auth.models import User
from django.db import models
from django.db.models import Q
# 权限等级
class Level(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
name = models.CharField('等级名', max_length=256, null=True, blank=True)
level = models.IntegerField('级别', blank=True, null=True, default=0)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.name
class Group_type(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
type = models.CharField('矩阵类型', max_length=256, null=True, blank=True)
def __str__(self):
return self.type
# 矩阵
class Group(models.Model):
GROUP_CLASSIFY_CHOICES = (
('0', '区域'),
('1', '媒体种类'),
('2', '行业'),
('3', '管理')
)
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
name = models.CharField('矩阵名称', max_length=256, null=True, blank=True)
presentation = models.TextField('矩阵描述', null=True, blank=True)
image = models.FileField(upload_to='groupimage', null=True, blank=True)
type = models.ForeignKey(
Group_type, on_delete=models.CASCADE, null=True, blank=True)
status = models.IntegerField(
'状态', null=True, blank=True, default=0)
province = models.CharField('', max_length=256, null=True, blank=True)
cities = models.CharField('', max_length=256, null=True, blank=True)
district = models.CharField('', max_length=256, null=True, blank=True)
town = models.CharField('', max_length=256, null=True, blank=True)
village = models.CharField('', max_length=256, null=True, blank=True)
classify = models.CharField(
'分类', max_length=256, null=True, blank=True, choices=GROUP_CLASSIFY_CHOICES)
rank = models.IntegerField('rank', default=0)
user = models.ForeignKey(
User, on_delete=models.CASCADE, blank=True, null=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def total_user(self):
return self.group_user_set.count()
def __str__(self):
return self.name
class Meta:
ordering = ["rank"]
# 矩阵管理员
class Group_admin(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
user = models.ForeignKey(
User, on_delete=models.CASCADE, null=True, blank=True)
group = models.ForeignKey(
Group, on_delete=models.CASCADE, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.group.name
class Meta:
ordering = ["created"]
# 矩阵成员
class Group_user(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
user = models.ForeignKey(
User, on_delete=models.CASCADE, null=True, blank=True)
group = models.ForeignKey(
Group, on_delete=models.CASCADE, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.user.username
# 单位类型
class Organizationtype(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
organizationtype = models.CharField(
'单位类型', blank=True, null=True, max_length=256)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.organizationtype
# 单位
class Organization(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
name = models.CharField('单位名', max_length=256, null=True, blank=True)
image = models.FileField(upload_to='cover', null=True, blank=True)
# organizationtype = models.ForeignKey(
# Organizationtype, on_delete=models.CASCADE, null=True, blank=True)
province = models.CharField('', max_length=256, null=True, blank=True)
cities = models.CharField('', max_length=256, null=True, blank=True)
district = models.CharField('', max_length=256, null=True, blank=True)
town = models.CharField('', max_length=256, null=True, blank=True)
village = models.CharField('', max_length=256, null=True, blank=True)
level = models.ForeignKey(
Level, on_delete=models.CASCADE, null=True, blank=True)
directly = models.CharField('单位类型', max_length=256, null=True, blank=True)
status = models.CharField('状态', max_length=256, null=True, blank=True)
# 20201014新添加字段
id_code = models.CharField(
'单位唯一标识码', max_length=256, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
class Meta:
ordering = ["name"]
def __str__(self):
return self.name
def is_direct(self):
return self.province != '' and self.cities == ''
# 扩展用户表
class Userprofile(models.Model):
"""
admin_status:
'0': '已删除',
'1': '添加申请市级审核中',
'2': '添加申请省级审核中',
'3': '正常',
'4': '注销申请市级审核中',
'5': '注销申请省级审核中',
"""
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField('姓名', null=True, blank=True, max_length=256)
sex = models.CharField('性别', null=True, blank=True, max_length=256)
unit = models.CharField('自己输入单位', null=True, blank=True, max_length=256)
department = models.CharField('部门', null=True, blank=True, max_length=256)
post = models.CharField('职务', null=True, blank=True, max_length=256)
image = models.FileField(upload_to='profile', null=True, blank=True)
organization = models.ForeignKey(
Organization, on_delete=models.CASCADE, null=True, blank=True)
# 用户状态:注册进来默认为0为未审核状态审核后status=1
status = models.IntegerField('用户状态', null=True, blank=True, default=0)
admin_status = models.IntegerField('管理状态', default=3)
message_status = models.BooleanField('是否发送消息', default=True)
platform = models.CharField('手机操作系统', null=True, blank=True, max_length=32)
# 20201017新增字段职位
zhiwei = models.CharField('职位', max_length=256, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
class Meta:
ordering = ["-created"]
def is_level1(self):
return self.organization.level.level == 1 or self.organization.level.level == 9
def is_level2(self):
return self.organization.level.level == 2
@classmethod
def level2_admin(cls, cities):
return Userprofile.objects.filter(organization__level__level=2, organization__cities=cities)
@classmethod
def level1_admin(cls):
return Userprofile.objects.filter(Q(organization__level__level=1) | Q(organization__level__level=9))
def __str__(self):
if self.is_level1():
return '省级管理员%s' % (self.name,)
elif self.is_level2():
return '市级管理员%s' % (self.name,)
return self.name
def create_user_profile(sender, instance, created, **kwargs):
"""Create the UserProfile when a new User is saved"""
if created:
profile = Userprofile()
profile.user = instance
profile.save()
class NewMedia(models.Model):
"""
status:
'0': '已删除',
'1': '添加申请市级审核中',
'2': '添加申请省级审核中',
'3': '正常',
'4': '注销申请市级审核中',
'5': '注销申请省级审核中',
"""
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
code = models.CharField('微信公众号', max_length=256, null=True, blank=True)
alias = models.CharField('别名', max_length=256, null=True, blank=True)
image = models.FileField(
upload_to='cover/%Y/%m/%d/', null=True, blank=True)
organization = models.ForeignKey(
Organization, on_delete=models.CASCADE, null=True, blank=True)
status = models.IntegerField(
'状态', null=True, blank=True, default=0)
attention = models.CharField('关注量', null=True, blank=True, max_length=256)
remark = models.CharField('备注', null=True, blank=True, max_length=2560)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
# 20201015新增字段
identificationcode = models.CharField(
'新媒体标识码', max_length=256, null=True, blank=True)
function = models.CharField('功能', max_length=256, null=True, blank=True)
articleurl = models.TextField('文章URL', null=True, blank=True)
class Meta:
abstract = True
ordering = ["-created"]
@classmethod
def category_one_count(cls):
t1 = Weixin.objects.exclude(
status=0,
organization__province=''
).filter(
organization__cities='',
organization__district='',
).count()
t2 = Weibo.objects.exclude(
status=0,
organization__province=''
).filter(
organization__cities='',
organization__district='',
).count()
t3 = Toutiao.objects.exclude(
status=0,
organization__province=''
).filter(
organization__cities='',
organization__district='',
).count()
t4 = Douyin.objects.exclude(
status=0,
organization__province=''
).filter(
organization__cities='',
organization__district='',
).count()
t5 = Qita.objects.exclude(
status=0,
organization__province=''
).filter(
organization__cities='',
organization__district='',
).count()
return t1 + t2 + t3 + t4 + t5
@classmethod
def category_two_count(cls):
t1 = Weixin.objects.exclude(
organization__province='',
organization__cities='',
status=0
).filter(
organization__district='',
).count()
t2 = Weibo.objects.exclude(
organization__province='',
organization__cities='',
status=0
).filter(
organization__district='',
).count()
t3 = Toutiao.objects.exclude(
organization__province='',
organization__cities='',
status=0
).filter(
organization__district='',
).count()
t4 = Douyin.objects.exclude(
organization__province='',
organization__cities='',
status=0
).filter(
organization__district='',
).count()
t5 = Qita.objects.exclude(
organization__province='',
organization__cities='',
status=0
).filter(
organization__district='',
).count()
return t1 + t2 + t3 + t4 + t5
@classmethod
def category_three_count(cls):
t1 = Weixin.objects.exclude(
status=0,
organization__province='',
organization__cities='',
organization__district=''
).count()
t2 = Weibo.objects.exclude(
status=0,
organization__province='',
organization__cities='',
organization__district=''
).count()
t3 = Toutiao.objects.exclude(
status=0,
organization__province='',
organization__cities='',
organization__district=''
).count()
t4 = Douyin.objects.exclude(
status=0,
organization__province='',
organization__cities='',
organization__district=''
).count()
t5 = Qita.objects.exclude(
status=0,
organization__province='',
organization__cities='',
organization__district=''
).count()
return t1 + t2 + t3 + t4 + t5
@classmethod
def media_list(cls, organization_id):
weixin = Weixin.objects.filter(
organization_id=organization_id).exclude(status=0)
weibo = Weibo.objects.filter(
organization_id=organization_id).exclude(status=0)
toutiao = Toutiao.objects.filter(
organization_id=organization_id).exclude(status=0)
douyin = Douyin.objects.filter(
organization_id=organization_id).exclude(status=0)
qita = Qita.objects.filter(
organization_id=organization_id).exclude(status=0)
results = []
for o in weixin:
result = dict()
result['id'] = o.id
result['code'] = o.code
result['alias'] = o.alias
result['status'] = o.status
result['type'] = 'weixin'
result['subtype'] = ''
results.append(result)
for o in weibo:
result = dict()
result['id'] = o.id
result['code'] = o.code
result['alias'] = o.alias
result['status'] = o.status
result['type'] = 'weibo'
result['subtype'] = ''
results.append(result)
for o in toutiao:
result = dict()
result['id'] = o.id
result['code'] = o.code
result['alias'] = o.alias
result['status'] = o.status
result['type'] = 'toutiao'
result['subtype'] = ''
results.append(result)
for o in douyin:
result = dict()
result['id'] = o.id
result['code'] = o.code
result['alias'] = o.alias
result['status'] = o.status
result['type'] = 'douyin'
result['subtype'] = ''
results.append(result)
for o in qita:
result = dict()
result['id'] = o.id
result['code'] = o.code
result['alias'] = o.alias
result['status'] = o.status
result['type'] = 'qita'
result['subtype'] = o.type
results.append(result)
return results
def __str__(self):
return self.code + ':' + self.alias
# 微信公众号
class Weixin(NewMedia):
weixinid = models.CharField('微信ID', max_length=256, null=True, blank=True)
# 微信文章采集
class Weixin_data(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
weixin = models.ForeignKey(
Weixin, on_delete=models.CASCADE, null=True, blank=True)
mp = models.CharField('mp', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
content = models.TextField('content', null=True, blank=True)
author = models.CharField('author', max_length=256, null=True, blank=True)
timestamp = models.CharField(
'timestamp', max_length=256, null=True, blank=True)
link = models.CharField('link', max_length=2560, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.title
# 微信评论
class Weixin_comment(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
comment = models.TextField('评论', null=True, blank=True)
user = models.CharField('用户', max_length=256, null=True, blank=True)
reply = models.TextField('回复', null=True, blank=True)
weixin = models.ForeignKey(
Weixin, on_delete=models.CASCADE, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.user
# 微信错别字
class Weixin_Wrong(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
wrong = models.CharField('错别字', max_length=256, null=True, blank=True)
idea = models.CharField('建议', max_length=256, null=True, blank=True)
site = models.CharField('位置', max_length=256, null=True, blank=True)
weixin = models.ForeignKey(
Weixin, on_delete=models.CASCADE, null=True, blank=True)
change = models.BooleanField('是否已修改', null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.wrong
# 微博
class Weibo(NewMedia):
weiboid = models.CharField('微博ID', max_length=256, null=True, blank=True)
# 微博文章采集
class Weibo_data(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
weiboid = models.CharField('微博ID', max_length=256, null=True, blank=True)
content = models.TextField('正文', null=True, blank=True)
url = models.CharField('文章url', max_length=256, null=True, blank=True)
originalimageurl = models.CharField(
'原始图片url', max_length=256, null=True, blank=True)
transpondimageurl = models.CharField(
'转发图片url', max_length=256, null=True, blank=True)
original = models.BooleanField('是否原创', null=True, blank=True)
site = models.CharField('发布位置', max_length=256, null=True, blank=True)
year = models.CharField('', max_length=256, null=True, blank=True)
month = models.CharField('', max_length=256, null=True, blank=True)
day = models.CharField('', max_length=256, null=True, blank=True)
tool = models.CharField('发布工具', max_length=256, null=True, blank=True)
like = models.CharField('点赞数', max_length=256, null=True, blank=True)
transpond = models.CharField('转发数', max_length=256, null=True, blank=True)
comment = models.CharField('评论数', max_length=256, null=True, blank=True)
title = models.CharField('文章标题', max_length=256, null=True, blank=True)
weibo = models.ForeignKey(
Weibo, on_delete=models.CASCADE, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.title
# 微博错别字
class Weibo_Wrong(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
wrong = models.CharField('错别字', max_length=256, null=True, blank=True)
idea = models.CharField('建议', max_length=256, null=True, blank=True)
site = models.CharField('位置', max_length=256, null=True, blank=True)
weibo = models.ForeignKey(
Weibo, on_delete=models.CASCADE, null=True, blank=True)
change = models.BooleanField('是否已修改', null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
# 今日头条
class Toutiao(NewMedia):
toutiaoid = models.CharField('头条ID', max_length=256, null=True, blank=True)
# 今日头条数据
class Toutiao_data(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
toutiao = models.ForeignKey(
Toutiao, on_delete=models.CASCADE, null=True, blank=True)
tid = models.CharField('tid', max_length=256, null=True, blank=True)
celltype = models.CharField(
'celltype', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
content = models.TextField('内容', null=True, blank=True)
time = models.CharField('时间', max_length=256, null=True, blank=True)
url = models.CharField('链接', max_length=256, null=True, blank=True)
commentcount = models.IntegerField('评论量', null=True, blank=True)
readnum = models.IntegerField('阅读量', null=True, blank=True)
likenum = models.IntegerField('点赞量', null=True, blank=True)
shownum = models.IntegerField('点击量', null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.title
# 今日头条评论
class Toutiao_comment(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
# comment = models.TextField('评论', null=True, blank=True)
# user = models.CharField('用户', max_length=256, null=True, blank=True)
# reply = models.TextField('回复', null=True, blank=True)
# toutiao = models.ForeignKey(
# Toutiao, on_delete=models.CASCADE, null=True, blank=True)
type = models.CharField('type', max_length=256, null=True, blank=True)
tid = models.CharField('tid', max_length=256, null=True, blank=True)
cid = models.CharField('cid', max_length=256, null=True, blank=True)
rid = models.CharField('rid', max_length=256, null=True, blank=True)
username = models.CharField(
'username', max_length=256, null=True, blank=True)
content = models.TextField('content', null=True, blank=True)
time = models.CharField('time', max_length=256, null=True, blank=True)
reply_count = models.IntegerField('reply_count', null=True, blank=True)
diggcount = models.IntegerField('diggcount', null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.username
# 今日头条错别字
class Toutiao_Wrong(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
wrong = models.CharField('错别字', max_length=256, null=True, blank=True)
idea = models.CharField('建议', max_length=256, null=True, blank=True)
site = models.CharField('位置', max_length=256, null=True, blank=True)
toutiao = models.ForeignKey(
Toutiao, on_delete=models.CASCADE, null=True, blank=True)
change = models.BooleanField('是否已修改', null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.wrong
# 抖音
class Douyin(NewMedia):
douyinid = models.CharField('抖音ID', max_length=256, null=True, blank=True)
# 抖音数据
class Douyin_data(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
mewnedia = models.ForeignKey(Douyin, on_delete=models.CASCADE)
count = models.CharField('总发文量', max_length=256, null=True, blank=True)
count_jc = models.CharField(
'监测时间内发文量', max_length=256, null=True, blank=True)
comment = models.CharField('评论数', max_length=256, null=True, blank=True)
reply = models.CharField('作者回复数', max_length=256, null=True, blank=True)
date = models.DateField('最近发文日期', max_length=256, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.mewnedia.code
# 其他新媒体
class Qita(NewMedia):
type = models.CharField('新媒体类型', max_length=256, null=True, blank=True)
qitaid = models.CharField('新媒体ID', max_length=256, null=True, blank=True)
def __str__(self):
return self.qitaid
# 其他新媒体监测
class Qita_jc(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
mewnedia = models.ForeignKey(Qita, on_delete=models.CASCADE)
count = models.CharField('总发文量', max_length=256, null=True, blank=True)
count_jc = models.CharField(
'监测时间内发文量', max_length=256, null=True, blank=True)
comment = models.CharField('评论数', max_length=256, null=True, blank=True)
reply = models.CharField('作者回复数', max_length=256, null=True, blank=True)
date = models.DateField('最近发文日期', max_length=256, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.mewnedia.code
# 5级地名库
class Area_code_2020(models.Model):
code = models.CharField('区划代码', max_length=256, null=True, blank=True)
name = models.CharField('名称', max_length=256, null=True, blank=True)
level = models.CharField(
'级别1-5,省市县镇村', max_length=256, null=True, blank=True)
pcode = models.CharField('父级区划代码', max_length=256, null=True, blank=True)
def __str__(self):
return self.name
class Meta:
ordering = ["code"]
# 新闻
class News(models.Model):
NEWMEDIA_NEWS_CHOICES = (
('0', '政策依据'),
('1', '基层动态'),
('2', '外省动态'),
('3', '监测通报'),
('4', '舆情热点'),
('5', '通知'),
('6', '重点新闻'),
)
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
type = models.CharField('文章类型', max_length=256, null=True,
blank=True, choices=NEWMEDIA_NEWS_CHOICES)
source = models.CharField('文章来源', max_length=256, null=True, blank=True)
title = models.CharField('文章标题', max_length=256, null=True, blank=True)
image = models.FileField(
upload_to='news/%Y/%m/%d/', null=True, blank=True)
author = models.CharField('作者', max_length=256, null=True, blank=True)
date = models.DateField('发表日期', null=True, blank=True, max_length=256)
content = models.TextField('内容', null=True, blank=True)
def __str__(self):
return self.title
class Meta:
ordering = ["-date"]
# 手机验证码验证表
class CheckCode(models.Model):
phone_code = models.CharField(
'手机验证码', max_length=256, null=True, blank=True)
phone = models.CharField('电话号', max_length=256, null=True, blank=True)
c_time = models.DateTimeField('时间', auto_now_add=True)
# 新媒体舆情临时表
class NewmediaSentimentWeixin(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
code = models.CharField('公众号', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
comment_count = models.CharField(
'评论数', max_length=256, null=True, blank=True)
reply_count = models.CharField(
'回复数', max_length=256, null=True, blank=True)
date = models.CharField('发布时间', max_length=256, null=True, blank=True)
def __str__(self):
return self.title
class NewmediaSentimentWeibo(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
code = models.CharField('微博号', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
comment_count = models.CharField(
'评论数', max_length=256, null=True, blank=True)
reply_count = models.CharField(
'回复数', max_length=256, null=True, blank=True)
date = models.CharField('发布时间', max_length=256, null=True, blank=True)
def __str__(self):
return self.title
class NewmediaSentimentToutiao(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
code = models.CharField('头条号', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
comment_count = models.CharField(
'评论数', max_length=256, null=True, blank=True)
reply_count = models.CharField(
'回复数', max_length=256, null=True, blank=True)
date = models.CharField('发布时间', max_length=256, null=True, blank=True)
def __str__(self):
return self.title
# 时效性监测临时表
class TimelinessMonitoring(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
n_type = models.CharField('新媒体类型', max_length=256, null=True, blank=True)
# name = models.ForeignKey(NewMedia,on_delete=models.CASCADE)
identificationcode = models.CharField(
'新媒体标识码', max_length=256, null=True, blank=True)
results = models.CharField('监测结果', max_length=256, null=True, blank=True)
update = models.IntegerField('更新次数', null=True, blank=True)
silent = models.IntegerField('静默日数', null=True, blank=True)
start_data = models.CharField(
'开始时间', max_length=256, null=True, blank=True)
end_data = models.CharField('结束时间', max_length=256, null=True, blank=True)
date = models.CharField('时间', max_length=256, null=True, blank=True)
date_length = models.CharField('时间', max_length=256, null=True, blank=True)
city = models.CharField('', max_length=256, null=True, blank=True)
district = models.CharField('', max_length=256, null=True, blank=True)
def __str__(self):
return self.id
# 错别字临时表
class Wrongly(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
error = models.CharField('错误', max_length=256, null=True, blank=True)
idea = models.CharField('建议', max_length=256, null=True, blank=True)
site = models.TextField('上下文', null=True, blank=True)
n_type = models.CharField('新媒体类型', max_length=256, null=True, blank=True)
n_name = models.CharField('新媒体名称', max_length=256, null=True, blank=True)
date = models.CharField('发布时间', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
city = models.CharField('', max_length=256, null=True, blank=True)
jc_date = models.CharField('监测时间', max_length=256, null=True, blank=True)
def __str__(self):
return self.title
# 评论临时表
class Comment(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
comment = models.TextField('评论', null=True, blank=True)
user = models.CharField('用户', max_length=256, null=True, blank=True)
reply = models.TextField('回复', null=True, blank=True)
name = models.CharField('新媒体名称', max_length=256, null=True, blank=True)
title = models.CharField('标题', max_length=256, null=True, blank=True)
date = models.CharField('时间', max_length=256, null=True, blank=True)
url = models.CharField('文章链接', max_length=256, null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.user
# 新媒体更新表(国办)
class Newmediaupdate(models.Model):
id = models.UUIDField('id', primary_key=True, default=uuid.uuid4)
organization_name = models.CharField(
'单位全称', max_length=256, null=True, blank=True)
organization_id_code = models.CharField(
'单位唯一标识码', max_length=256, null=True, blank=True)
identificationcode = models.CharField(
'新媒体标识码', max_length=256, null=True, blank=True)
newmedia_name = models.CharField(
'账号名称', max_length=256, null=True, blank=True)
newmedia_type = models.CharField(
'账号类型', max_length=256, null=True, blank=True)
function = models.CharField('功能', max_length=256, null=True, blank=True)
province = models.CharField('', max_length=256, null=True, blank=True)
cities = models.CharField('', max_length=256, null=True, blank=True)
district = models.CharField('', max_length=256, null=True, blank=True)
articleurl = models.TextField('文章URL', null=True, blank=True)
biz = models.TextField('BIZ,账号id', null=True, blank=True)
created = models.DateTimeField('创建时间', auto_now_add=True)
updated = models.DateTimeField('更新时间', auto_now=True)
def __str__(self):
return self.newmedia_name