Files
DataRush/services/backend/apps/achievement/models.py
T
2025-04-08 00:37:39 +03:00

44 lines
1.2 KiB
Python

from django.db import models
from apps.core.models import BaseModel
class Achievement(BaseModel):
def image_url_upload_to(instance, filename):
return f"achievements/{instance.id}/icon/{filename}"
name = models.CharField(
max_length=30, verbose_name="название", unique=True
)
description = models.TextField(verbose_name="описание")
icon = models.ImageField(
verbose_name="иконка достижения",
upload_to=image_url_upload_to,
)
slug = models.SlugField(verbose_name="слаг", unique=True)
def __str__(self):
return self.name
class Meta:
verbose_name = "ачивка"
verbose_name_plural = "ачивки"
class UserAchievement(BaseModel):
achievement = models.ForeignKey(
Achievement, verbose_name="ачивка", on_delete=models.CASCADE
)
user = models.ForeignKey(
"user.User", verbose_name="пользователь", on_delete=models.CASCADE
)
received_at = models.DateTimeField(
verbose_name="дата получения", auto_now_add=True
)
class Meta:
verbose_name = "выданная ачивка"
verbose_name_plural = "выданные ачивки"