我有成千上万的房子的房地产数据:
这是一所房子的数据:
Year,Low_Price,High_Price
1999,$ 125,000,$ 146,000
2000,$ 122,000,$ 148,000
2001年,127,000美元,149,000美元
2002年,129,000美元,151,000美元
2003年,134,000美元,153,000美元
2004年,138,000美元,164,000美元2005年,145,000美元,158,000美元
我想按Year,Low_Price和High_Price进行过滤。 例如,在2002年至2004年期间搜索房价,在128,000美元至152,000美元之间。
如果搜索参数与模型的匹配,则会显示房屋。 这是一个模型要过滤的大量数据,我不知道如何设置模型。
写出这样的模型:
price_low_1999 = $125,000
price_high_1999 = $146,000
etc...
对于每一个模型来说似乎都不太理想。
如何设置模型,以便在给定上述搜索参数的情况下过滤这些数据很容易?
答案 0 :(得分:0)
如果您设置的模型如下,我不会发现问题:
class House(models.Model):
year = models.IntegerField(max_length=4)
low_price = models.FloatField()
high_price = models.FloatField()
# other house attributes ...
并过滤,例如房价在2002年至2004年之间,为128,000美元至152,000美元
houses = House.objects.filter(
year__range=(2002, 2004),
low_price__gte=128.000,
high_price__lte=152.000
)
这是你想要的吗?
答案 1 :(得分:-1)
您需要两个型号,一个用于房屋,一个用于年度价格(字段房屋(外键),年份,price_low和price_high)。然后,您可以使用House.objects.filter(pk__in=Prices.objects.filter(year__gte=2012, year__lte=2014, price_low__gte=100000).values('house_id'))