Python 如何返回QuerySet中所有选定字段和字段名的显示值?
我有一个Django视图,它将模板数据作为json传递到html页面。我遇到的问题是,传递的是实际的数据库字段和字段名,而不是get_FOO_display()的可读名称和结果。为清晰起见,我的模型如下所示:Python 如何返回QuerySet中所有选定字段和字段名的显示值?,python,django,Python,Django,我有一个Django视图,它将模板数据作为json传递到html页面。我遇到的问题是,传递的是实际的数据库字段和字段名,而不是get_FOO_display()的可读名称和结果。为清晰起见,我的模型如下所示: class FooBar(models.Model): name = models.CharField('Name', max_length=255) AWAITING_CLASSIFICATION_STATUS = 1 IN_PROGRESS_STATUS = 2
class FooBar(models.Model):
name = models.CharField('Name', max_length=255)
AWAITING_CLASSIFICATION_STATUS = 1
IN_PROGRESS_STATUS = 2
AWAITING_REVIEW_STATUS = 3
CLOSED_STATUS = 4
STATUS_CHOICES = [
(AWAITING_CLASSIFICATION_STATUS, 'Awaiting Classification'),
(IN_PROGRESS_STATUS, 'In Progress'),
(AWAITING_REVIEW_STATUS, 'Awaiting Review'),
(CLOSED_STATUS, 'Closed')
]
status = models.IntegerField('Status', choices=STATUS_CHOICES, default=AWAITING_CLASSIFICATION_STATUS)
[
{'name': "name1", "status": 1},
{'name': "name2", "status": 2},
]
我目前的看法是:
def IndexView(request):
foo_list = FooBar.objects.all().values()
json_list = json.dumps(list(foo_list))
context = {'foo_list': json_list}
return render(request, 'foo-app/index.html', context)
我的数据是什么样子的:
class FooBar(models.Model):
name = models.CharField('Name', max_length=255)
AWAITING_CLASSIFICATION_STATUS = 1
IN_PROGRESS_STATUS = 2
AWAITING_REVIEW_STATUS = 3
CLOSED_STATUS = 4
STATUS_CHOICES = [
(AWAITING_CLASSIFICATION_STATUS, 'Awaiting Classification'),
(IN_PROGRESS_STATUS, 'In Progress'),
(AWAITING_REVIEW_STATUS, 'Awaiting Review'),
(CLOSED_STATUS, 'Closed')
]
status = models.IntegerField('Status', choices=STATUS_CHOICES, default=AWAITING_CLASSIFICATION_STATUS)
[
{'name': "name1", "status": 1},
{'name': "name2", "status": 2},
]
我的数据应该是什么样的:
[
{'Name': "name1", "Status": "Awaiting Classification"},
{'Name': "name2", "Status": "In Progress"},
]
我探讨了一些想法:
最具python/Djangonic风格的方法是什么?选项2是最常用的方法。您将把数据传递给Django模板引擎,而不是直接传递给客户机。您可以通过适当地编码Django模板来确定客户机/浏览器实际看到的数据