added Vote
This commit is contained in:
+20
-1
@@ -56,4 +56,23 @@ class Issue(models.Model):
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
return self.title
|
||||
|
||||
def vote_count(self):
|
||||
return self.votes.count()
|
||||
|
||||
def has_user_voted(self, user):
|
||||
if user.is_authenticated:
|
||||
return self.votes.filter(user=user).exists()
|
||||
return False
|
||||
|
||||
class Vote(models.Model):
|
||||
user = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
issue = models.ForeignKey(Issue, on_delete=models.CASCADE, related_name='votes')
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
unique_together = ('user', 'issue') # Prevent duplicate votes per user
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.user.username} voted on {self.issue.title}"
|
||||
|
||||
Reference in New Issue
Block a user