1
我有一个问题。我不知道如何根据Django公平的方式来构建我的模型。如何设计我的模型?
我有3个模型:Team,Plateform和Games。
class Team(models.Model):
name = models.CharField(max_length=15, null=False)
tag = models.CharField(max_length=4, null=False)
description = HTMLField(blank=True, null=True)
logo = models.FileField(upload_to=user_directory_path, validators=[validate_file_extension], blank=True, null=True)
games = models.ManyToManyField(Games, verbose_name="Jeu")
owner = models.ForeignKey(User, verbose_name="Créateur")
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
class Plateform(models.Model):
name = models.CharField(max_length=100, unique=True, null=False, verbose_name="Plateforme")
guid = models.CharField(max_length=100, unique=True, null=False, verbose_name="Abréviation")
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
class Games(models.Model):
guid = models.CharField(max_length=100, unique=True, null=False, verbose_name="GUID")
title = models.CharField(max_length=100, null=False, verbose_name="Titre")
logo = models.FileField(upload_to='media/games/', validators=[validate_file_extension], blank=True, null=True, verbose_name="Logo du jeu")
date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date de création")
update = models.DateTimeField(auto_now=True, verbose_name="Dernière modification")
plateform = models.ManyToManyField(Plateform, verbose_name="Plateforme")
所以:
游戏拥有许多Plateforms
队玩很多游戏
我的问题是,如何确定哪些游戏这Plateforms一球队目前正在打球吗? 因为我必须知道一个团队是否在特定的Plateform或几个平台上玩游戏。
我想我需要一个像一个新的类:
class Relation(models.Model):
team = models.ForeignKey(Team)
plateform = models.ForeignKey(Plateform)
game = models.ForeignKey(Games)
但是是不是有根据Django的一个更好的主意吗?
感谢您的帮助。
谢谢。事实上,我认为其他的可能性并且可能是最简单的,就是在平台上添加这么多的游戏。 – GrandGTO
我认为这是最简单的方法,因为它会解决您稍后访问数据时遇到的问题,而您需要的代码较少。你也不会失去很多Django功能。但这是你的选择。 – Navid2zp
你的链接很有趣。如果ManyToManyField.through_fields是这种情况的解决方案,我会尝试。 – GrandGTO