我正在尝试将以下visible
函数中的两个计数查询合并为一个查询。如果没有关系或存在关系并且某些特定过滤为真,则函数应返回 True。
class OtherModel(models.Model):
starts = models.DateField()
ends = models.DateField()
class MyModel(models.Model):
m2m = models.ManyToManyField('OtherModel', blank=True, )
def visible(self):
# Should always return True if no relations to OtherModel are present.
if self.m2m.exists():
# If relations to OtherModel are present check for starts and ends.
# The reason for the first check is that if there are no relations
# and the below query returns 0 the function will return False
today = datetime.date.today()
return self.m2m.filter(starts__lte=today, ends__gte=today).exists()
return True
编辑:更多代码和注释,用存在替换计数。
m2m 关系用于日期限制,但如果没有可用的日期限制,则该函数应返回 True(如果完全没有限制,则对象可见,但如果存在限制但不匹配当前日期,则不可见)。
示例代码只是一个简化的示例,我需要这样做并实际返回查询集。