Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ORM和模板,如何查看给定查询集的所有可用变量?_Python_Django_Django Templates - Fatal编程技术网

Python Django ORM和模板,如何查看给定查询集的所有可用变量?

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 =

我总是在试图找出模板中可以使用的变量名称时遇到问题。我想知道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 = 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看起来很有帮助。谢谢