有没有办法通过foreignObject过滤
查看我想修复的代码。
模型部分:
class UserProfile:
blahblah
class FreeTime :
owner = models.ForeignKey(UserProfile)
fromTime=models.DateField()
toTime=models.DateField()
现在,编码部分
givenTime = date(2012,11,11)
freeTimes = FreeTime.objects.filter(fromTime__lte=givenTime, toTime__gte=givenTime)
users = []
for freeTime in freeTimes:
users.append(freeTime.owner)
//todo : remove duplicated object of user
这完全是浪费代码。
如您所见,我想要的是找到在给定时间免费的用户。
任何减少代码的方法?
答案 0 :(得分:3)
我认为这应该有效:
User.objects.filter(freetime__fromTime__lte=givenTime, freetime__toTime__gte=givenTime)
修改强>
正如@calvin Cheng所说,你应该FK到用户:
from django.contrib.auth.models import User
class FreeTime(models.Model):
owner = models.ForeignKey(User)
fromTime=models.DateField()
toTime=models.DateField()