我想获取给定两个年龄之间的所有配置文件。 示例"从年龄:20 岁到年龄:30"在我的模型中,我保存了用户的出生日期而不是年龄。在这里,我需要将该出生日期转换为年龄,并希望获取给定年龄之间的配置文件。如果问题不正确,请帮助我纠正问题。
models.py
class profiles(models.Model):
user = models.OneToOneField(User)
full_name = models.CharField(max_length=200)
birthday = models.DateField(null=True)
def age(self):
return int((datetime.date.today() - self.birthday).days / 365.25 )
age = property(age)
views.py
def search_results(request):
from_age = form.cleaned_data['from_age']
to_age = form.cleaned_data['to_age']
query_set = profiles.objects.filter(gender=gender)
if from_age < to_age:
query_set = query_set.filter(
age__gte=from_age,
age__lte=to_age
)
尝试使用范围查找:
import datetime
def search_results(request):
from_age = form.cleaned_data['from_age']
to_age = form.cleaned_data['to_age']
now = datetime.date.today()
from_date = datetime.date(now.year-int(to_age), now.month, now.day)
to_date = datetime.date(now.year-int(from_age), now.month, now.day)
query_set = profiles.objects.filter(gender=gender,
birthday__range=(from_date, to_date))
不能按属性进行筛选。
你应该反过来做:将年龄转换为日期,并对其进行过滤。