refactored a little similarity rules
This commit is contained in:
parent
129201d3a9
commit
c0273773bc
|
|
@ -380,18 +380,18 @@ class EstablishmentQuerySet(models.QuerySet):
|
|||
.order_by(*similarity_rules['ordering']) \
|
||||
.distinct(*similarity_rules['distinctions'], 'id')
|
||||
|
||||
def similar_food_producers(self, distillery):
|
||||
def similar_food_producers(self, food_producer):
|
||||
"""
|
||||
Return QuerySet with objects that similar to Food Producer.
|
||||
:param distillery: Establishment instance
|
||||
:param food_producer: Establishment instance
|
||||
"""
|
||||
base_qs = self.similar_base(distillery).same_subtype(distillery)
|
||||
base_qs = self.similar_base(food_producer).same_subtype(food_producer)
|
||||
similarity_rules = {
|
||||
'ordering': [F('same_subtype').desc(), ],
|
||||
'distinctions': ['same_subtype', ]
|
||||
}
|
||||
if distillery.address and distillery.address.coordinates:
|
||||
base_qs = base_qs.annotate_distance(point=distillery.location)
|
||||
if food_producer.address and food_producer.address.coordinates:
|
||||
base_qs = base_qs.annotate_distance(point=food_producer.location)
|
||||
similarity_rules['ordering'].append(F('distance').asc())
|
||||
similarity_rules['distinctions'].append('distance')
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user