我正在编写一个包含投票部分的Django应用程序,并且我想提供创建不同类型问题的能力。所以,我有这些模型的评价部分Django:使用其他模型类作为字段的选项
# Do I really need this class?
class BaseRating(models.Model):
class Meta:
abstract = True
# For questions like: "Rate your experience with XXXXX"
class FiveStarRating(BaseRating):
rating = models.PositiveSmallIntegerField(null=True, blank=True, validators=[MaxValueValidator(5)])
# For questions like: "Would you recommend XXXXX"?
class YesNoRating(BaseRating):
rating = models.BooleanField()
我现在要创建一个新的问题,我想为它指定的评级系统:
如果我创建的问题“您如何评价XXXXX”,我会使用FiveStarRating模型
如果我创建这个问题:‘您是否满意XXXX’,我会使用YesNoRating
那么,我应该如何设计问题模型?
class Question(models.Model):
title = models.CharField(max_length=255)
# rating??
# I can't create a foreignkey field to the base class...
编辑:我终于用django-dynamic-forms,但我认为是可以接受的一个过
谢谢!试图在这种方法中适用另一个必要条件:一个模型民意调查,其中包含与所有问题的多元关系(因为同一民意调查可以有不同类型的问题,同一问题可以在多个民意调查中)。我不想在Poll模型中有两个字段(一个用于YesNoQuestions,另一个用于FiveStarQuestion)。 – jorgeas80