转自:https://www.jianshu.com/p/a86281df530e
Django多条件筛选查询
主模型只存在外键一对多关系
模型设计
# 快捷筛选状态
class Status(models.Model):
order_number = models.PositiveIntegerField(unique=True,verbose_name='状态编号')
status_tag = models.CharField(max_length=10,verbose_name='状态名称')
class Meta:
ordering = ['order_number',]
verbose_name = '事件选择'
verbose_name_plural = verbose_name
def __str__(self):
return self.status_tag
# 项目分类
class Project(models.Model):
project_name = models.CharField(max_length=10,verbose_name='项目名称')
class Meta:
ordering = ['project_name']
verbose_name = '项目分类'
verbose_name_plural = verbose_name
def __str__(self):
return self.project_name
# 事件分类
class Category(models.Model):
category_name = models.CharField(max_length=10,verbose_name='分类名称')
class Meta:
ordering = ['category_name',]
verbose_name = '事件分类'
verbose_name_plural = verbose_name
def __str__(self):
return self.category_name
# 事件级别
class Level(models.Model):
order_number = models.PositiveIntegerField(unique=True,verbose_name='级别编号')
level_tag = models.CharField(max_length=10,verbose_name='级别名称')
class Meta:
ordering = ['order_number',]
verbose_name = '事件级别'
verbose_name_plural = verbose_name
def __str__(self):
return self.level_tag
# 事件内容
class EventContent(models.Model):
title = models.CharField(max_length=50,verbose_name='事件标题')
content = models.TextField(verbose_name='事件正文')
image = models.ImageField(upload_to='images/%Y/%m',blank=True,null=True,verbose_name='描述图片')
created = models.DateTimeField(auto_Now_add=True,verbose_name='创建时间')
updated = models.DateTimeField(auto_Now=True,verbose_name='更新时间')
status = models.ForeignKey(Status,on_delete=models.SET_NULL,related_name='event_content',verbose_name='事件状态')
project = models.ForeignKey(Project,related_name='event_content'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。