Ten en cuenta que en las ciencias cualquier problema casi siempere puede tener más de una resoluciones, de igual modo nosotros compartimos lo mejor y más eficiente.
Solución:
Puedes consultar el Tag
objeto primero y filtro Post
con esas identificaciones:
tags = Tag.objects.filter(field_name='string_or_field')
posts = Post.objects.filter(tags__in=tags)
En realidad, encontré una forma buscando en Google, pero esto puede tomar mucho tiempo para consultar/generar resultados si hay una gran cantidad de registros
custom_list = [rec.id for rec in posts if 'string_or_field' in rec.tags.all()]
querset = MyModel.objects.filter(id__in=custom_list)
Las respuestas anteriores son correctas si cada elemento de la lista ya existe en la base de datos, pero a veces este no es el caso. En este caso, puede crear un apéndice de conjunto de consulta basado en la lista e implementar métodos de conjunto de consulta y propiedades de conjunto de consulta según sea necesario.
class ListAsQuerySet(list):
def __init__(self, *args, model, **kwargs):
self.model = model
super().__init__(*args, **kwargs)
def filter(self, *args, **kwargs):
return self # filter ignoring, but you can impl custom filter
def order_by(self, *args, **kwargs):
return self
qs = ListAsQuerySet(custom_list, model=Post)
Tienes la opción de amparar nuestro ensayo dejando un comentario o dejando una puntuación te lo agradecemos.