投票系统的Django模型及其跟踪

2024-09-28 20:48:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我工作的投票系统(投赞成票和反对票)和功能-跟随。 我想把它做好,因为我没有人给我建议,我把帖子和代码放在这里。在

Follow函数-它应该显示有多少追随者和他们是谁。我在这里用了一个m2m关系,中间模型跟随器。 我的问题-这是正确的方法吗-使用m2m和中间模型在这里?在

功能投票增加和投票反对-它应该显示多少票赞成,多少反对,谁投了反对票,谁投了赞成票。 我的问题是,这里是否也可以与m2m和中间模式选民的关系?在

以下功能代码:

class Post(models.Model):
    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='posts')
    title = models.CharField(max_length=255, unique=True)
    description = models.TextField(max_length=1024)
    followers = models.ManyToManyField(settings.AUTH_USER_MODEL, through='Follower', blank=True)
    is_visible = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('posts:post_detail', kwargs={'pk': self.pk})

    def number_of_followers(self):
        return self.followers.count()


class Follower(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.user

投赞成票和反对票功能的代码:

^{pr2}$

现在是工作只遵循功能,但我要确保我的方法是好的。谢谢你的帮助。在


Tags: 代码self功能trueautoreturnsettingsmodels
1条回答
网友
1楼 · 发布于 2024-09-28 20:48:40

目前,在问题模型上没有区分上下投票的区别,所以这将返回相同的查询。在

作为补充说明,如果您计划将类似的投票/跟随功能添加到其他模型中,可能值得考虑这是否是一个通用关系的好用例。这将产生多态关系,并且是干的。在

这是文件 generic relations

相关问题 更多 >