Django: união de diferentes conjuntos de consultas no mesmo modelo
Estou programando uma pesquisa em um modelo e tenho um problema.
Meu modelo é quase como:
class Serials(models.Model):
id = models.AutoField(primary_key=True)
code = models.CharField("Code", max_length=50)
name = models.CharField("Name", max_length=2000)
e eu tenho nas tuplas do banco de dados como estas:
1 BOSTON The new Boston
2 NYT New York journal
3 NEWTON The old journal of Mass
4 ANEWVIEW The view of the young people
Se eu procurar a stringnew
, o que eu quero ter é:
names
que começam com a stringentão ocodes
que começam com a stringentão onames
que contêm a stringentão ocodes
que contêm a stringPortanto, a lista anterior deve aparecer da seguinte maneira:
2 NYT New York journal
3 NEWTON The old journal of Mass
1 BOSTON The new Boston
4 ANEWVIEW The view of the young people
A única maneira que encontrei para obter esse tipo de resultado é fazer pesquisas diferentes (se eu colocar "OR" em uma única pesquisa, perco a ordem que desejo).
Meu problema é que o código do modelo que mostra o resultado é realmente redundante e honestamente muito feio, porque tenho que repetir o mesmo código para todos os 4 conjuntos de consultas diferentes. E o pior é que não posso usar a paginação!
Agora, como a estrutura dos diferentes conjuntos de consultas é a mesma, estou pensando se há uma maneira de juntar os 4 conjuntos de consultas e fornecer ao modelo apenas um conjunto de consultas.