django在读取数据库后返回的是一个对象,如何将对象中的字段(属性)读出?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django在读取数据库后返回的是一个对象,如何将对象中的字段(属性)读出?相关的知识,希望对你有一定的参考价值。

django在读取(obj.objects.all())数据库后返回的是一个对象,如何将对象中的字段(属性)读出?
我用obj.objects.all().属性名 读的时候错误,直接读返回一个对象

你用all() 返回的是一个对象列表。这样的 [obj1, obj2, ...]
使用 obj.objects.get(id=**) 这样得到的是一个对象, 或者使用 get_object_or_404(obj, id=**)
这样的话, 使用 obj.objects.get(id=**).属性名 既可以了

或者
for obj in obj.objects.all():
obj.属性名

明白了吧
参考技术A

需在models.py 文件下,定义类‘class’中添加返回值 return (返回您需要的信息);
例:

将数据库对象复制到另一个-django

【中文标题】将数据库对象复制到另一个-django【英文标题】:copy database objects into another- django 【发布时间】:2015-08-15 02:14:14 【问题描述】:

我知道如何将 python 对象复制到另一个中,

new_obj.__dict__ = original_obj.__dict__.copy()

但在使用数据库时,它会用新对象覆盖旧对象。

我知道 old_obj 因为相同的 id 而被覆盖。

所以我尝试的是,从数据库中获取最新的 id 并添加 1,如下所示,

obj = Author.objects.latest('id')
put_id = obj.id + 1

然后使用这个put_id 保存另一个对象。

这是将复制的对象保存到数据库的正确方法还是自动实现此目的的任何其他方式?

【问题讨论】:

How do I clone a Django model instance object and save it to the database? 的可能重复项 【参考方案1】:

您只需创建主键None 即可为新对象获取新主键

new_object = ModelName.objects.get(pk= #OLD_OBJECT_PK )
new_object.pk = None
new_object.save()

【讨论】:

以上是关于django在读取数据库后返回的是一个对象,如何将对象中的字段(属性)读出?的主要内容,如果未能解决你的问题,请参考以下文章

Django:从 QueryDict 读取 JSON 对象数组

我们如何比较 django 中的请求对象?

Django 查询:返回一个将转换为“AND (...)”的 Q 对象

如何在 Django RestFramework API 中将 manytomanyfield 作为对象返回

57. Django 2.1.7 查询数据返回json格式

Django 使用自定义 SQL 而不是模型将 JSON 对象返回到模板