1
我使用django和乾草堆進行搜索(顯然),我不希望它包括繼承對象。例如:django haystack繼承問題
可以說我有模型Person和model Employee(它繼承自Person)。當添加一個Employee對象時,它也會創建一個Person對象。人雖然不必是員工。
所以我想搜索所有人員和員工的記錄,但排除也是僱員
我希望這是有道理的,
乾杯
我使用django和乾草堆進行搜索(顯然),我不希望它包括繼承對象。例如:django haystack繼承問題
可以說我有模型Person和model Employee(它繼承自Person)。當添加一個Employee對象時,它也會創建一個Person對象。人雖然不必是員工。
所以我想搜索所有人員和員工的記錄,但排除也是僱員
我希望這是有道理的,
乾杯
Person對象可以一個is_employee
字段添加到您的Person模型的SearchIndex類。
class Person(models.Model):
# your existing code goes here
@property
def is_employee(self):
try:
self.employee # try to get the associated Employee object
return True
except Employee.DoesNotExist:
return False
class PersonSearchIndex(SearchIndex):
# your existing code goes here
is_employee = BooleanField(model_attr='is_employee')
之後,您可以使用此字段排除也是員工的人員。
query = SearchQuerySet().filter(is_employee=False)
你也可以用更通用的領域person_type
,如果你有一個以上的人的類型替換該領域。