如果我们有像这样的模型
class SomeModel(models.Model):
field_1 = models.IntegerField()
field_2 = models.IntegerField()
在每个给定的查询中,value
如果我们必须同时检查两个字段,是否可以field_1=value, field_2=value
使用自定义来简化冗余()Manager
?
SomeModel.objects.filter(Q(field_1=value) | Q(field_2=value))
SomeModel.objects.filter(Q(field_1=value) | Q(field_2=value)).count()
是的,您可以制造一个mananger,例如:
class SomeModelManager(models.Manager):
def with_value(self, value):
return self.get_queryset().filter(field_1=value, field_2=value)
或具有或条件:
from django.db.models import Q
class SomeModelManager(models.Manager):
def with_value(self, value):
return self.get_queryset().filter(Q(field_1=value) | Q(field_2=value)
然后,我们可以将管理器添加到SomeModel
模型中:
class SomeModel(models.Model):
field_1 = models.IntegerField()
field_2 = models.IntegerField()
object = SomeModelManager()
然后,您可以使用以下命令访问过滤后的查询集:
SomeModel.objects.with_value(value)
SomeModel.objects.with_value(value).count()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句