django/能否通过foreignKey进行过滤?
有没有办法通过foreignObject进行过滤 查看我要修复的代码 模型部件:django/能否通过foreignKey进行过滤?,django,Django,有没有办法通过foreignObject进行过滤 查看我要修复的代码 模型部件: class UserProfile: blahblah class FreeTime : owner = models.ForeignKey(UserProfile) fromTime=models.DateField() toTime=models.DateField() 现在,编码部分 givenTime = date(2012,11,11) freeTimes = F
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
这完全是浪费代码
正如你们所看到的,我想要的是,找到在给定时间内空闲的用户
有没有办法减少代码?我认为这应该是可行的:
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()
我认为这应该奏效:
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()
是的。比我快。但我要指出的是,对于他的问题,他回到了
UserProfile
class。不是用户
。虽然你可能是对的,FK回到用户
类是一个更好的设计,我会按照你的方式来做。真的。我总是FK到auth.models.User。我认为这是最好的做法。有了Django 1.5,我们就不会再有这个问题了。有什么区别吗?通过user.get_profile()访问用户配置文件或通过userProfile.user访问用户。通常有价值的数据在userProfile中,而不是在user中。所以我使用userprofile作为foreignKey。有什么区别?是的。比我快。但我要指出的是,对于他的问题,他回到了UserProfile
class。不是用户
。虽然你可能是对的,FK回到用户
类是一个更好的设计,我会按照你的方式来做。真的。我总是FK到auth.models.User。我认为这是最好的做法。有了Django 1.5,我们就不会再有这个问题了。有什么区别吗?通过user.get_profile()访问用户配置文件或通过userProfile.user访问用户。通常有价值的数据在userProfile中,而不是在user中。所以我使用userprofile作为foreignKey。有什么区别?