models设计

窍门表设计,注意窍门分类和发布类型的概念区别;

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"

猜你喜欢

转载自blog.csdn.net/weixin_34166472/article/details/87032908
今日推荐