【问题标题】:Django forms ForeignKey groupsDjango 形成 ForeignKey 组
【发布时间】:2014-06-30 05:20:25
【问题描述】:

我正在设计一个 Django 应用程序,供运动员注册比赛。每个运动员都有几个体重等级,每个体重等级都存储在另一个模型的外键中。型号如下:

class Tournament(models.Model):
    tourney_name = models.CharField(max_length=30)
    tourney_date = models.DateTimeField()
    tourney_classes = models.ManyToManyField(WeightClass, related_name='tourney_name', blank=True)

class Athlete(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email_address = models.EmailField(unique=True)
    athlete_class = models.ForeignKey(WeightClass, related_name='entries')

class WeightClass(models.Model):
    class_name = models.CharField(max_length=100, unique=True)
    class_info = models.CharField(max_length=50)
    class_group = models.CharField(max_length=100)

体重等级被分成几组,我希望这些等级在注册表上进行分组。例如,我们有少年男子组。在少年男子组中,我们有轻量级、中量级和重量级。然后我们有初级女性、高级男性等。我希望表单成为每个体重级别的选项按钮,分别分组。

  • 青年男子
    • 轻量级
    • 中量级
    • 重量级
  • 青少年女性
    • 轻量级
    • 中量级
    • 重量级

所以我需要我的表单来查询数据库中的锦标赛,然后检索该特定锦标赛的所有权重等级,然后显示如上所示的权重等级。我该怎么做?

【问题讨论】:

    标签: python django django-forms foreign-keys django-queryset


    【解决方案1】:

    我建议您将 class_group 作为 WeightClass 中的 ForeignKey 关系。因此类似于:

    class WeightClass(models.Model):
        class_name = models.CharField(max_length=100, unique=True)
        class_info = models.CharField(max_length=50)
        class_group = models.ForeignKey(WeightGroup)
    
    class WeightGroup(models.Model):
        name = models.CharField(max_length=100, unique=True)
    

    您可以先显示所有体重组,然后根据用户选择过滤WeightClass

    如果 Lightweight 实例对于 Junior MenJunior Women 应该是相同的,那么您或许应该考虑将其建模为多个多关系。

    【讨论】:

      猜你喜欢
      • 2016-03-22
      • 2010-09-28
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多