Django Simple Search on Foreign Key and Many to Many Fields -
this snippet simple django search works great doesn't support searches on foreign key or many many fields. how can search fk , m2m?
looking @ snippet, magic happens here:
def get_query(query_string, search_fields): ... q = q(**{"%s__icontains" % field_name: term}) ... based on that, appears does support fk or m2m searches, have specify full path in search_fields string using double underscore __.
for example, lets had model task has foreign key project, , project has attribute name:
class task(models.model): project = models.foreignkey(project) class project(models.model): name = models.charfield(max_length=500) if wanted search through project names on task, write following:
>>> tq = get_query('<search term>',['project__name',]) >>> t = task.objects.filter(tq)
Comments
Post a Comment