我正在 Django 中制作茶叶目录,但我在模型方面遇到了一些问题。我希望数据库中的某些内容对于某些评级有 1-5 的选择。例如,对于茶类型,我想要 1-5 的咖啡因含量。我使用以下代码执行此操作:
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)
知道为什么会发生这种情况吗?
最佳答案
在 python 3 上,zip()
返回一个生成器。您的第一个模型正在耗尽该生成器,因此第二个模型没有选择。将 one_to_ Five_choices
包装在 list()
调用中应该可以解决问题。
关于python - Django Admin - 适用于一个整数模型的选择,但不适用于另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44619763/