一個簡單的解決方案是在模型上添加另一個字段complete_name
。在save
上,您將通過連接first_name
和last_name
字段來更新此字段,但不包含任何空格(您需要從拼接結果中除去所有空格)。然後,您將使用search_term
在該字段上進行查詢,但空間也被剝離。
簡單的例子來給你的總體思路:在Django查詢全名]
class Person(models.Model):
first_name = CharField(...)
last_name = CharField(...)
complete_name = CharField(...)
def save(self, *args, **kwargs):
complete_name = '%s%s' % (self.first_name, self.last_name)
self.complete_name = complete_name.replace(' ', '')
super(Person, self).save(*args, **kwargs)
results = Person.objects.filter(complete_name__icontains=search_term.replace(' ', ''))
可能重複(http://stackoverflow.com/questions/7681708/querying-full-name-in- django) – laffuste