1
我正在Django製作一個茶目錄,我對模型有點問題。我希望數據庫中的某些內容有1-5的選擇,對於某些評級。例如,對於茶類,我想要一個1-5的咖啡等級。我用下面的代碼來做這件事:Django Admin - 一個Integer模型的工作選擇,但不是另一個
one_to_five_choices = zip(range(1,5+1), range(1,5+1))
...
class TeaType(models.Model):
name = models.CharField(max_length=20, primary_key=True)
steeping_temperature = models.PositiveSmallIntegerField()
steeping_time_minutes = models.PositiveSmallIntegerField()
caffeine_level = models.PositiveSmallIntegerField(choices=one_to_five_choices)
directions = models.TextField()
def __str__(self):
return self.name
它的功能完美!
但是,我似乎對收視率相同的代碼,它並沒有顯示此框的選擇。
class Rating(models.Model):
rating = models.PositiveSmallIntegerField(choices=one_to_five_choices)
tea = models.ForeignKey(Tea)
user = models.ForeignKey(User)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return "{} star rating for {} by {}".format(self.rating, self.tea, self.user.get_username())
class Meta:
unique_together = (("user", "tea"),)
有沒有什麼有趣的事情在admin.py導致此
for m in [TeaType, Brand, Ingredient, Picture, Rating]:
admin.site.register(m)
任何想法,爲什麼發生這種情況?
我已經閱讀了所有爲admin生成表單字段的代碼(請參閱'modelform_factory'函數),並且沒有指出爲什麼會發生這種情況。工廠功能不應該忽視你在現場設置選擇。我認爲,如果你能複製它,你會發現自己有一個bug,你可能會報告它:https://code.djangoproject.com/newticket – fixmycode
好吧 - 我不知道如何製作一個更小的可重複版本,但我想我會提交票。 – Arya
不要說我的評論,我認爲@ user61000下面是對的 – fixmycode