¿Cómo construyo un queryset en django recuperando hilos en los que un usuario ha publicado?

StackOverflow https://stackoverflow.com/questions/1409800

  •  05-07-2019
  •  | 
  •  

Pregunta

Estoy creando una aplicación de foro con hilos usando django-mptt. Todo está en funcionamiento, pero tengo problemas para crear un queryset específico.

Quiero recuperar publicaciones que:

1) son nodos raíz

2) son publicados por current_user o tienen un descendiente publicado por current_user.

Lo que tengo hasta ahora es esto:

Post.objects.filter(Q(user = current_user) | Q(  )).exclude(parent__gt = 0)

en mi segunda Q necesito algo que decir si current_user ha publicado uno de sus descendientes. Alguien sabe si es posible?

¿Fue útil?

Solución

No creo que puedas hacer esto en una consulta. Aquí está cómo hacerlo en dos:

thread_ids = Post.objects.filter(user=current_user).values_list('tree_id', flat=True)
posts = Post.objects.filter(tree_id__in=thread_ids, level=0)

Esto obtiene el ID de árbol de MPTT de cada subproceso que el usuario ha publicado. Luego obtiene el nodo raíz de cada uno de estos subprocesos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top