代码之家  ›  专栏  ›  技术社区  ›  bakarin

如何在django模型中将字段链接到多值字段

  •  3
  • bakarin  · 技术社区  · 8 年前

    此模型配置文件包含关于用户的不同信息,还有一个名为 quiz 这是一个 ManytoMany 领域此字段显示用户已注册的测验。我想要 total_score 存储用户在参加的每个测验中获得的分数的字段。我该怎么做?

    class Profile(models.Model):
      user=models.OneToOneField(User,related_name='Profile', on_delete=models.CASCADE)
      college=models.CharField(max_length=200)
      phone=models.IntegerField(blank=True,default=0)
      quiz=models.ManyToManyField(Quiz)
      total_score=models.IntegerField(default=0)
    
      def __str__(self):
        return self.user.username
    
    class Quiz(models.Model):
      name=models.CharField(max_length=100)
      description=models.CharField(max_length=800,blank=True)
      dept=models.CharField(max_length=40)
      date=models.DateTimeField(default=datetime.datetime.now())
      duration=models.DurationField(default=datetime.timedelta(minutes=30))
      no_of_question=models.IntegerField(blank=True,default=0)
      theme=models.ImageField(blank=True)
      active=models.BooleanField(default=False)
    
      def __str__(self):
        return self.name
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Sidhin S Thomas    8 年前

    似乎您需要创建另一个模型,可能称为结果。

    class Result(models.Model):
        profile = models.Foreignkey(Profile, on_delete=models.CASCADE)
        quiz = models.Foregnkey(Quiz, on_delete=models.CASCADE)
        score = models.IntegerField()
    

    这种关系应该允许您满足您的要求。