Django rest_framework MVC структура
В настоящее время я работаю над проектом Django, используя rest_framework. Проект построен вокруг конечных точек API, которые будут использоваться на стороне клиента для отправки/получения данных о таких функциях, как пользователи, игроки, playerInventory и т.д. и т.п.
Мой вопрос заключается в том, что я пытаюсь структурировать этот проект и не уверен, должен ли я деструктурировать данные, которые получает мой front-side. Данные, с которыми я работаю, выглядят следующим образом
API ENDPOINT
Возвращает инвентарь одного игрока [GET]
{
"elementId": 1,
"elements": [1, 2, 3 ,4]
}
API ENDPOINT
Обновление инвентаря одного игрока [POST]
from ->
{
"elementId": 1,
"elements": [1, 2, 3 ,4]
}
(example) to ->
{
"elementId": 1,
"elements": [3, 3, 3 ,1]
}
Я хотел бы иметь возможность использовать внешнюю "модель", которая берет данные из моих API и конструирует их для меня, чтобы я мог использовать эти данные в лучшем виде. Не мог бы кто-нибудь дать мне подробную структуру файла проекта Django и некоторые возможные шаблоны проектирования кода модели Javascript?
вот мой models.py:
class User(models.Model):
userId = models.AutoField(primary_key=True)
username = models.CharField(max_length=16)
email = models.EmailField(max_length=30)
isMember = models.BooleanField(default=False)
class meta:
db_table = 'app_users'
app_label = "app"
managed = True
def __str__(self):
return str(self.userId)
class Player(models.Model):
playerId = models.ForeignKey(User, on_delete=models.CASCADE)
credits = models.IntegerField(default=500)
AP = models.IntegerField(default=100)
playerTier = models.IntegerField(default=1)
class meta:
db_table = 'app_players'
app_label = "app"
managed = True
def __str__(self):
return str(self.playerId)
class Elements(models.Model):
elementId = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
elementTier = models.IntegerField(
validators=[MinValueValidator(1), MaxValueValidator(5)])
value = models.IntegerField()
class meta:
db_table = 'app_elements'
app_label = "app"
managed = True
def __str__(self):
return str(self.elementId)
class Inventory(models.Model):
playerId = models.ForeignKey(Player, on_delete=models.CASCADE)
# elementId = models.ForeignKey(Elements, on_delete=models.CASCADE)
elements = ArrayField(models.IntegerField())
class meta:
db_table = 'app_inventory'
app_label = "app"
managed = True
def __str__(self):
return str(self.playerId)
Заранее спасибо!!!