mirror of
https://github.com/narrrl/holy-flavor-rater.git
synced 2026-11-03 16:41:27 +01:00
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from django.core.validators import MaxValueValidator, MinValueValidator
|
|
from django.db import models
|
|
|
|
|
|
class Rating(models.Model):
|
|
user = models.ForeignKey("api.User", related_name="ratings", on_delete=models.CASCADE)
|
|
flavor = models.ForeignKey("api.Flavor", related_name="ratings", on_delete=models.CASCADE)
|
|
score = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)])
|
|
comment = models.TextField(blank=True, null=True)
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
class Meta:
|
|
unique_together = ("user", "flavor")
|
|
ordering = ["-created_at"]
|
|
|
|
def __str__(self) -> str:
|
|
return f"{self.user.username} - {self.flavor.name}: {self.score}"
|
|
|
|
|
|
class Reply(models.Model):
|
|
user = models.ForeignKey("api.User", related_name="replies", on_delete=models.CASCADE)
|
|
rating = models.ForeignKey(Rating, related_name="replies", on_delete=models.CASCADE)
|
|
text = models.TextField()
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
class Meta:
|
|
ordering = ["created_at"]
|
|
|
|
def __str__(self) -> str:
|
|
return f"Reply by {self.user.username} on {self.rating.id}"
|