es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contar objetos de clave externa en Django

Supongamos:

“`
class Product(models.Model):
user = models.ForeignKey(User,…)

class Sold(models.Model):
post = models.ForeignKey(post,…)
buyer = models.ForeignKey(User,…)
“`

Ahora, ¿cómo puedo obtener la cantidad de artículos vendidos utilizando el modelo de Usuario?
Algo como User.objects.all().annotate(nbuy=Count("?"))

Poniendo “”sold”” en lugar de “”?”” se obtiene el número de artículos que el usuario ha comprado.
¿Qué debo hacer para obtener la cantidad de artículos que el usuario ha vendido?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el número de elementos que un usuario ha vendido, puedes utilizar la siguiente consulta:

    Usuario.objects.annotate(n_vendidos=Count('producto__vendido'))
    

    Esta consulta utiliza el nombre relacionado producto definido en el modelo Producto y sigue la relación de clave externa hacia el modelo Vendido. La función Count se utiliza para obtener el número de instancias Vendido relacionadas con cada Usuario. El resultado se anota con el nombre n_vendidos.

Comments are closed.