Python Django ORM和模板,如何查看给定查询集的所有可用变量?
我总是在试图找出模板中可以使用的变量名称时遇到问题。我想知道shell中是否有什么东西可以打印出所有可用的对象 例如,假设您有两个模型:Python Django ORM和模板,如何查看给定查询集的所有可用变量?,python,django,django-templates,Python,Django,Django Templates,我总是在试图找出模板中可以使用的变量名称时遇到问题。我想知道shell中是否有什么东西可以打印出所有可用的对象 例如,假设您有两个模型: class Foo1(models.Model) id = models.Integer(primary_key=True) foo2 = models.ForeignKey(Foo2) class Foo2(models.Model) id = models.Integer(primary_key=True) foo3 =
class Foo1(models.Model)
id = models.Integer(primary_key=True)
foo2 = models.ForeignKey(Foo2)
class Foo2(models.Model)
id = models.Integer(primary_key=True)
foo3 = models.Integer()
在shell中,我执行p=Foo1.objects.all,因此现在p是Foo1和Foo2中由于关系而包含的所有值的查询集
现在在我的模板中,为了提取所有这些数据,我通常会这样做:
{% for i in p %}
<p>{{ i.id }}</p>
<p>{{ i.foo2.id }}</p>
<p>{{ i.foo2.foo3 }}</p>
{% endfor %}
现在我只是猜测要使用的变量语法是I.id、I.foo2.id和I.foo2.foo3,但对于更复杂的QuerySet,这并不总是简单的。有没有办法输出查询集的所有可用变量及其名称?您应该使用:
Foo.objects.values_list()
在视图中,将对象作为列表而不是查询集传递
另外,请查看:
Foo.objects.values()
没必要猜测。您应该能够从模型本身的代码中找到答案 如果出于某种奇怪的原因,您无法访问代码-我无法想象为什么-您可以始终使用交互式shell-在那里导入您的模型,执行查询,然后执行dirmy_obj以查找my_obj的所有属性的列表。Foo.objects.values看起来很有帮助。谢谢