关于 Python 的 class.objects.filter()

2017-05-05 23:40:55 +08:00
 ekko

使用 redisco 时发现 objects 这个类是从哪继承来的?求解惑

from redisco import models

class Person(models.Model):
    name = models.Attribute(required=True)
    created_at = models.DateTimeField(auto_now_add=True)
    fave_colors = models.ListField(str)

person = Person(name="nama")
person.save()

abc = Person.objects.filter(name = "nama")[0]
print abc.name

2847 次点击
所在节点    Python
4 条回复
dikT
2017-05-06 09:59:26 +08:00
这是 django.很多人都说,我们应该知其原理,但是我觉得,你应该先会使它,扯别的都 tm 卵用
PythonAnswer
2017-05-06 12:50:48 +08:00
黄字 models.Model
PythonAnswer
2017-05-06 12:54:51 +08:00
Model.objects 如果不自定义, django 会默认分配你一个 objects = models.Manager()
wwqgtxx
2017-05-06 18:36:12 +08:00
@PythonAnswer @dikT 请仔细看,这是 redisco,只不过它是模仿了 django 的接口而已
根本实现一般是通过一个 metaclass 实现的,那个 metaclass 是加在 models.Model 上被连带继承了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/359480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX