說我有未知數量的問題。例如:如何在單個Django模型中存儲任意類型的值?
- 天空是藍色的[Y/N]
- 是你出生於[日期]什麼日期
- 什麼是圓周率[3.14]
- 什麼是大INTEG [100]
現在,每個這些問題都提出了一個不同但非常具體的答案(布爾型,日期型,浮點型,整數型)。本地django可以愉快地在模型中處理這些。
class SkyModel(models.Model):
question = models.CharField("Is the sky blue")
answer = models.BooleanField(default=False)
class BirthModel(models.Model):
question = models.CharField("What date were your born on")
answer = models.DateTimeField(default=today)
class PiModel(models.Model)
question = models.CharField("What is pi")
answer = models.FloatField()
但這有明顯的問題,每個問題都有一個特定的模型 - 所以,如果我們需要添加問題後,我不得不改變數據庫。呸。所以,現在我想變得很花哨 - 如何設置一個由答案類型轉換自動發生的模型?
ANSWER_TYPES = (
('boolean', 'boolean'),
('date', 'date'),
('float', 'float'),
('int', 'int'),
('char', 'char'),
)
class Questions(models.model):
question = models.CharField(()
answer = models.CharField()
answer_type = models.CharField(choices = ANSWER_TYPES)
default = models.CharField()
所以從理論上講,這將做到以下幾點:
- 當我建立我的意見我看答案的類型,並確保我 只是擺在那價值。
- 但是當我想把這個回答拉出來時,它會以answer_type指定的格式返回數據。例3.14作爲浮點數而不是str返回。
如何執行這種自動轉換?或者可以有人建議一個更好的方法來做到這一點?
非常感謝!
把它作爲一個字符串是去了,恕我直言的方式,但具有類型轉換回原來的值一個好的策略是非常重要的。每種類型的答案都有不同的字段,聽起來很麻煩。 – 2010-04-20 22:00:43