Stars y Opinion se incluyeron en ListItem

Esto porque al final eran relaciones 1 a 1 y era preferible que
estuvieran incluidos en un solo modelo, de esta forma hay menos llamadas
a la base de datos desde la api y una api mas simple de realizar y
llamar

Realmente el unico modelo que quedo "extraño" es el de opinion helpfull
que tendra que pasar a ser ... listitemhelpful? pero el nombre
opinionhelpful es mas coherente
This commit is contained in:
Daniel Cortes
2020-07-14 10:31:32 -04:00
parent 1a36bec50a
commit ce76f76dfb
5 changed files with 52 additions and 42 deletions

View File

@@ -1,4 +1,6 @@
"""Definición de los modelos que utilizara la aplicación Lists"""
from django.core.validators import MinValueValidator, MaxValueValidator
from users.models import User
from django.db.models import CharField, TextField, IntegerField
from django.db.models import ForeignKey, ManyToManyField
@@ -29,25 +31,15 @@ class Tag(Model):
class ListItem(Model):
"""Item de la lista de un usuario"""
stars_validators = [MinValueValidator(0), MaxValueValidator(5)]
user = ForeignKey(User, on_delete=CASCADE, related_name='list')
entity = ForeignKey(Entity, on_delete=CASCADE)
stars = IntegerField(default=0, validators=stars_validators, blank=True)
opinion = TextField(default='', blank=True)
tags = ManyToManyField(Tag, related_name='list', blank=True)
class Stars(Model):
"""Estrellas que un usuario le asigno a una entidad"""
user = ForeignKey(User, on_delete=CASCADE)
entity = ForeignKey(ListItem, on_delete=CASCADE)
quantity = IntegerField()
class Opinion(Model):
"""Opinion de un usuario sobre una entidad"""
user = ForeignKey(User, on_delete=CASCADE)
entity = ForeignKey(ListItem, on_delete=CASCADE)
opinion_text = TextField()
class OpinionHelpful(Model):
"""Voto sobre una opinion"""
VOTES = [
@@ -57,5 +49,5 @@ class OpinionHelpful(Model):
]
user = ForeignKey(User, on_delete=CASCADE)
opinion = ForeignKey(Opinion, on_delete=CASCADE)
opinion = ForeignKey(ListItem, on_delete=CASCADE)
vote = CharField(max_length=1, choices=VOTES)