We'll be reusing the locations app that we created in the previous recipes.
To have some more interesting data to show in the list view, let's add the ratings field to the Location model as follows:
# myproject/apps/locations/models.py
# …
RATING_CHOICES = ((1, "★☆☆☆☆"), (2, "★★☆☆☆"), (3, "★★★☆☆"), (4, "★★★★☆"), (5, "★★★★★"))
class Location(CreationModificationDateBase, UrlBase):
# …
rating = models.PositiveIntegerField(
_("Rating"), choices=RATING_CHOICES, blank=True, null=True
)
# …
def get_rating_percentage(self):
return self.rating * 20 if self.rating is not None else None
The get_rating_percentage() method will be necessary to return the rating as a percentage for the representation.
Don't forget to make and run migrations and then add some ratings for locations in the administration.