当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django Model.__eq__用法及代码示例


本文介绍 django.db.models.Model.__eq__ 的用法。

声明

Model.__eq__()

定义了相等方法,使得具有相同主键值和相同具体类的实例被认为是相等的,除了主键值为None 的实例除了它们自己之外不等于任何东西。对于代理模型,具体类被定义为模型的第一个非代理父级;对于所有其他模型,它只是模型的类。

例如:

from django.db import models

class MyModel(models.Model):
    id = models.AutoField(primary_key=True)

class MyProxyModel(MyModel):
    class Meta:
        proxy = True

class MultitableInherited(MyModel):
    pass

# Primary keys compared
MyModel(id=1) == MyModel(id=1)
MyModel(id=1) != MyModel(id=2)
# Primary keys are None
MyModel(id=None) != MyModel(id=None)
# Same instance
instance = MyModel(id=None)
instance == instance
# Proxy model
MyModel(id=1) == MyProxyModel(id=1)
# Multi-table inheritance
MyModel(id=1) != MultitableInherited(id=1)

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.Model.__eq__。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。