我正在編寫一個包含投票部分的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