1234567891011121314151617181920212223242526272829 |
- from django.contrib.auth import get_user_model
- from django.core.validators import MaxValueValidator, MinValueValidator
- from django.db import models
- from django.db.models.deletion import CASCADE, DO_NOTHING
- from django_extensions.db.models import TimeStampedModel
- from games.models import Game
- User = get_user_model()
- class UserGameProgress(TimeStampedModel):
- user = models.OneToOneField(User, on_delete=models.CASCADE)
- game = models.ForeignKey(Game, on_delete=DO_NOTHING)
- percent = models.IntegerField(
- default=0,
- validators=[MaxValueValidator(100), MinValueValidator(0)],
- help_text="Keeps track of how far through the game you are",
- )
- def __str__(self):
- return f"Progress in {self.game} for {self.user} {self.percent}"
- class UserProfile(models.Model):
- user = models.OneToOneField(User, on_delete=CASCADE)
- favorite_games = models.ManyToManyField(Game, related_name="favorite_games")
- def __str__(self):
- return f"User profile for {self.user}"
|