Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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调试:打印模型&x27;s包含数据_Python_Django_Debugging_Printing - Fatal编程技术网

Python/Django调试:打印模型&x27;s包含数据

Python/Django调试:打印模型&x27;s包含数据,python,django,debugging,printing,Python,Django,Debugging,Printing,也许是一个简单的问题,但我不知道如何总结才能找到答案 是否可以打印出模型的所有可用字段 例如,在iPython中,我可以导入模型,只需写入模型名称,选项卡将显示模型具有的所有可用字段 在代码中不使用某种shell就可以做到这一点吗 我想使用某种命令(例如,print\u fields(self))来获取模型中的内容。为什么不实现\uuuuuunicode\uuu: def __unicode__(self): return self.whatever_field + self.anoth

也许是一个简单的问题,但我不知道如何总结才能找到答案

是否可以打印出模型的所有可用字段

例如,在iPython中,我可以导入模型,只需写入模型名称,选项卡将显示模型具有的所有可用字段

在代码中不使用某种shell就可以做到这一点吗


我想使用某种命令(例如,
print\u fields(self)
)来获取模型中的内容。

为什么不实现
\uuuuuunicode\uuu

def __unicode__(self):
    return self.whatever_field + self.another_field

要检查模型上的字段,我通常使用

>>> Person?
Type:       ModelBase
Base Class: <class 'django.db.models.base.ModelBase'>
String Form:    <class 'foo.bar.models.Person'>
Namespace:  Interactive
File:       /home/zk/ve/django/foo/bar/models.py
Docstring:
    Person(id, first_name, last_name)
也许可以试试:

data=serializers.serialize(“json”,models.MyModel.objects.all(),indent=4)

JSON格式易于打印和阅读;)

我认为您只需要在模型的实例上使用
\uuuuu dict\uuuu
。(但它不会在ipython中提供类似制表符完成的方法)。另外,通常使用
\uuuuuu doc\uuuuuuuu
也是非常有用的


如果您有模型实例,还可以查看inspect

,您只需调用:

model_queryset.all().values()

有关使用模型类本身的字段列表,请参见


或者直接查看文档-对于Django 1.10,有一个专门的章节介绍如何使用字段:

受@zeekay答案的启发,使用以下内容查看模型实例的字段和相应值:

[x for x in Cheese.objects.all()[0].__dict__.items() if not x[0].startswith('_')]

因为我不知道这些领域是什么?这是我的主要问题。你只是想知道字段名称还是字段中的数据?@Bryce Siedschlaw:字段就足够了:)这是为了帮助,我得到了我的答案。请看帮助()找到了我需要的一切:)太简单了。。。该死的,我很笨:D哦,
只在shell中工作。哦,好的,我误读了,还以为你在问如何签入IPython!即使是单个对象的完整跟踪。令人惊叹的
[x for x in Cheese.objects.all()[0].__dict__.items() if not x[0].startswith('_')]