从Django中的模型类生成可迭代的选择元组

时间:2019-01-14 17:40:05

标签: python django django-models django-forms tuples

我正在处理Django模型,我想从我的模型实例中生成一个元组:

model.py

class Extra(models.Model):
    extra_n = models.CharField(max_length=200)
    extra_price = models.IntegerField(default=0)
    def __str__(self):
       return self.extra_n

我期望基于相关表单上的用户条目的输出:

choices = (('extra_price 1','extra_n1'),
           ('extra_price 2','extra_n2'),
           ('extra_price 3','extra_n3')
)

1 个答案:

答案 0 :(得分:1)

您可以使用.values_list(..) [Django-doc]进行ORM呼叫:

tuple(Extra.objects.values_list('extra_price', 'extra_n'))

话虽这么说,Django表单可以与ModelChoiceField [Django-doc]一起使用,该tf.train.ProfilerHook可以根据模型(或者如果提供了过滤的查询集)来自行选择。