试图在一个Player类中创建一个Roster类(在Django中),Help!这是课堂作业

ccrfmcuu  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(91)

在我的www.example.com上models.py为我的团队管理器应用程序工作,我不知道如何为花名册布局我的班级。我是Django的新手,所以任何帮助都非常感谢。我们的想法是让球员在球队中,但然后有一个名册,以显示谁是玩哪一场比赛。以下是我目前所做的:

class Player(models.Model):
    player_id = models.AutoField(primary_key=True)
    first_name = models.CharField(max_length=45)
    last_name = models.CharField(max_length=45)
    cap_number = models.CharField(max_length=45, blank=True, default='')

    def __str__(self):
        result = ''
        if self.cap_number == '':
            result = '%s, %s' % (self.last_name, self.first_name)
        else:
            result = '%s, %s (%s)' % (self.last_name, self.first_name, self.cap_number)
        return result

    class Meta:
        ordering = ['last_name', 'first_name', 'cap_number']
        constraints = [
            UniqueConstraint(fields=['last_name', 'first_name', 'cap_number'],
                             name='unique_player')
        ]

class Roster(models.Model):
    roster_id = models.AutoField(primary_key=True)
    roster_name = models.CharField(max_length=45)
    player = models.ManyToManyField(Player)

    def __str__(self, data=None):
        return f'{self.roster_name} -  {self.player}'

    class Meta:
        ordering = ['roster_name', 'player']

字符串

这是我尝试运行makemigrations时得到的错误:

ERROR:organizer.(models.E015)'ordering'指的是不存在的字段、相关字段或查找'player'。

我是否必须创建另一个类才能将玩家放入列表中?

kxkpmulp

kxkpmulp1#

根据播放器模型的任意字段定义排序。
你可以这样按名字排序

ordering = ['roster_name', 'player__first_name']

字符串

相关问题