Articles of django queryset

Anotación de consulta Django con campo booleano.

Digamos que tengo un modelo de producto con productos en un escaparate y una tabla de imágenes de producto con imágenes del producto, que pueden tener cero o más imágenes. Aquí hay un ejemplo simplificado: class Product(models.Model): product_name = models.CharField(max_length=255) # … class ProductImage(models.Model): product = models.ForeignKey(Product, related_name=’images’) image_file = models.CharField(max_length=255) # … Al mostrar […]

TypeError: el objeto ‘RelatedManager’ no es iterable

Django Tengo los siguientes modelos: class Group(models.Model): name = models.CharField(max_length=100) parent_group = models.ManyToManyField(“self”, blank=True) def __unicode__(self): return self.name class Block(models.Model): name = models.CharField(max_length=100) app = models.CharField(max_length=100) group = models.ForeignKey(Group) def __unicode__(self): return self.name Por ejemplo, el bloque b1 tiene grupo g1 . Por su nombre quiero obtener todos los bloques del grupo g1 . Escribí […]

Diferentes bases de datos con los mismos modelos en Django.

Tengo el siguiente problema: Necesito una base de datos diferente con los mismos modelos para cada usuario (o conjunto de usuarios). Tengo una forma de averiguar con qué base de datos está relacionado el usuario. El problema es que siempre tengo que usar el método de using en cada consulta que hago. Por ejemplo: Thing.objects.using(‘appropriate_database’).all() […]

En Django, ¿puedes agregar un método a querysets?

En Django, si tengo una clase modelo, por ejemplo from django.db import models class Transaction(models.Model): … luego, si quiero agregar métodos al modelo, para almacenar, por ejemplo, filtros razonablemente complejos, puedo agregar un administrador de modelos personalizado, por ejemplo class TransactionManager(models.Manager): def reasonably_complex_filter(self): return self.get_query_set().filter(…) class Transaction(models.Model): objects = TransactionManager() Y luego puedo hacer: >>> […]

Modelo Django último método ()

Tengo el siguiente problema (por cierto, creo que no había tenido este problema el día anterior): >>> rule = Rule.objects.get(user=user) >>> rule.id 1 >>> rule = Rule.objects.get(user=user).latest(‘id’) AttributeError: ‘Rule’ object has no attribute ‘latest’ ¿Por qué me da el error?

¿Cómo hacer un filtro menor o igual para filtrar en Django queryset?

Estoy intentando filtrar usuarios por un campo personalizado en cada perfil de usuario llamado perfil. Este campo se llama nivel y es un número entero entre 0-3. Si filtro usando iguales, obtengo una lista de usuarios con el nivel elegido como se esperaba: user_list = User.objects.filter(userprofile__level = 0) Cuando bash filtrar usando menos de: user_list […]

Django queryset – ¿No es posible filtrar en un FloatField?

Estoy tratando de hacer una operación muy simple pero tengo un problema. Tengo un modelo simple: class MyModel(models.Model): date = models.DateTimeField(null=False) value = models.FloatField(null=True) interval = models.IntegerField(null=True) Mi objective es obtener el objeto MyModel con el mayor valor. #Get the value value = MyModel.objects.filter(date__gte=’2014-05-01′, date__lte=’2014-05-31′).aggregate(Max(‘value’))[‘value__max’] # Get the object corresponding to the max value my_object […]

Django personalizado para funciones complejas (función sql)

En el proceso de encontrar una solución para Django ORM por orden exacto , creé un Func. Django personalizado: from django.db.models import Func class Position(Func): function = ‘POSITION’ template = “%(function)s(LOWER(‘%(substring)s’) in LOWER(%(expressions)s))” template_sqlite = “instr(lower(%(expressions)s), lower(‘%(substring)s’))” def __init__(self, expression, substring): super(Position, self).__init__(expression, substring=substring) def as_sqlite(self, compiler, connection): return self.as_sql(compiler, connection, template=self.template_sqlite) que funciona de […]

Django: usando los valores () y get_FOO_display ()?

Estoy tratando de mejorar un código existente que originalmente tomó 3 minutos para preparar una tabla de datos grande (luego devuelta por Ajax). El código antiguo iteró sobre un gran conjunto de consultas, reuniendo información de una variedad de objetos relacionados. Por lo que he leído, y desde la supervisión del registro de SQL, la […]

Consulta de personas con cumpleaños en los próximos X días.

¿Cómo obtengo consultas de personas con un cumpleaños en los próximos X días? Vi esta respuesta, pero no me conviene, porque solo recibe personas con el año de nacimiento actual.