Django中是否有某种方法可以检索/显示所有属性'属于通过Django创建的对象的值?
在Python shell中,我使用了以下内容:
>>> print(p.first_name, p.last_name, p.software_name)
Linus Torvalds Linux
p是创建的对象,其属性为 first_name,last_name,software_name 。我已经创建了几个应用于 mysql 中特定数据库的模型。
我想了解显示此类信息的其他方法。
答案 0 :(得分:2)
有点晚了,但是由于没有答案提到最简单的方法:
>>> # assuming your object was already saved in the database and p is the QuerySet
>>> # with your object
>>> p.values()
<QuerySet [{'first_name': 'Linus', 'last_name': 'Torvalds', 'software_name': 'Linux'}]>
答案 1 :(得分:1)
尝试使用内置的python dir()方法
目录(对象)
答案 2 :(得分:1)
Python 内置的特殊属性 object.__dict__
可以检索对象的所有属性。
p.__dict__
答案 3 :(得分:0)
我认为你的问题并不清楚你想在哪里展示这些信息。如果你设置:
QuerySet = MyModel.objects.all() #MyModel is your model name
到view.py中的变量(如QuerySet),然后在模板中标记它,它将显示该模型中的所有信息。当然你也可以使用for循环分别打印每个元素。请查看Django文档中的QuerySet,了解如何过滤信息并使用模型数据。
答案 4 :(得分:0)
答案 5 :(得分:0)
您可以为相应的模型类定义__str__
方法,如下所示。
class User(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
software_name = models.CharField(max_length=100)
def __str__(self):
return self.first_name + " " + self.last_name + " " + self.software_name
假设您的第一个条目是数据库中的 Linus Torvalds Linux ,您可以像在 django Shell 上那样实现自己的愿望。
from main_app.models import User
e = User.objects.get(pk=1)
e