窍门表设计,注意窍门分类和发布类型的概念区别;
class Knack(models.Model):
"""
窍门
"""
type_choice = (
('share', '分享'),
('help', '求助'),
('advice', '建议'),
('notice', '公告'),
)
title = models.CharField(max_length=100, default='', verbose_name="标题")
c_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
author = models.ForeignKey(User, null=True, blank=True, verbose_name='作者', on_delete=models.CASCADE, related_name='author')
k_category = models.ForeignKey('Category', null=True, blank=True, verbose_name='分类', on_delete=models.CASCADE, related_name='k_category')
content = models.TextField(verbose_name='内容', default='')
type = models.CharField(choices=type_choice, max_length=20, default='', verbose_name="类型")
support = models.IntegerField(default=0, verbose_name='点赞数')
def __str__(self):
return self.title
class Meta:
verbose_name = '窍门'
verbose_name_plural = "窍门"
class KnackUser(models.Model):
""" 窍门和用户的关系表 """
support_choice = (
(1, '顶'),
(0, '踩'),
)
knack = models.ForeignKey(Knack, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
support = models.IntegerField(choices=support_choice, default=None, blank=True, null=True)
comment = models.TextField(verbose_name='评论', default=None)
c_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
verbose_name = '用户和窍门的中间表'
verbose_name_plural = "用户和窍门的中间表"
db_table = "knack_user_relationship"