Articles of django orm

¿Cómo filtrar un conjunto de consultas según el resultado de un método en la clase modelo que devuelve un valor booleano?

Como función miembro de una de mis clases modelo, tengo un is_visible(self, user) que devuelve un valor booleano. Según lo definido, toma el usuario solicitante (modelo de User Django) como entrada. Me gustaría poder filtrar los conjuntos de consultas según la respuesta a este método. ¿Cómo puedo usar esta función como un filtro queryset? Para […]

AttributeError: el objeto ‘ManyToManyField’ no tiene atributo ‘_m2m_reverse_name_cache’

Estoy tratando de asignar Project Manager a un empleado. Cada empleado, puede ser gerente de proyecto. Los gerentes de proyecto pueden tener varios empleados. Los empleados solo pueden tener 1 Project Manager. Pero cuando hago Employee.objects.get(name=’HereHere’).get_xxx() AttributeError: ‘ManyToManyField’ object has no attribute ‘_m2m_reverse_name_cache’ class Employee(models.Model): name = models.CharField(max_length=20, unique=True) pm = models.ManyToManyField(‘self’, symmetrical=False, through=’PM’, related_name=’related_to’, […]

El campo de usuario personalizado de Django choca con AbstractBaseUser

Estoy construyendo un proyecto Django desde una base de datos existente. La base de datos está siendo utilizada por otros sistemas, por lo que no puedo cambiar su esquema. Este es mi modelo de usuario personalizado actual: class Users(AbstractBaseUser): id_user = models.IntegerField(primary_key=True) role = models.IntegerField() username = models.CharField(max_length=50, unique=True) last_login_date = models.DateTimeField() AbstractBaseUser necesita una […]

Django auto asimétrico a través de la consulta de relación.

Tengo los siguientes – modelos simplificados – class User(models.Model): following = models.ManyToManyField(“self”, through=’Following’, symmetrical=False) class Following(models.Model): from_user = models.ForeignKey(User, related_name=’from_user’) to_user = models.ForeignKey(User, related_name=’to_user’) status = models.IntegerField() El estado es 0 para pendiente, 1 para siguiente Permitir que el usuario sea un usuario. Me gustaría obtener todos los usuarios de usuario seguidos puedo hacer user.following.all() […]

Nivel de aislamiento por transacción en Django ORM

¿Es posible establecer el nivel de aislamiento para una transacción personalizada (pero no con un sql sin procesar)? Por ejemplo, algo como: with transaction.commit_on_success(isolation=’SERIALIZABLE’): bla

Expresión de consulta de Django para campos calculados que requieren condiciones y conversión.

Estoy tratando de ejecutar una consulta de agregación que es aproximadamente igual a: select sum(impressions) as impressions, sum(clicks) as clicks, sum(clicks)/sum(impressions) as ctr from stats group by product order by ctr; La base de datos utilizada es PostgreSQL. Hice esta expresión de consulta (Django 1.9): Stats.objects.values(‘product’).annotate( impressions = models.Sum(‘impressions’), clicks = models.Sum(‘clicks’), ctr = models.ExpressionWrapper( […]

Django ORM – valores simulados (). Cadena de filtro ()

Estoy intentando burlarme de una llamada encadenada en el modelo model.Manager() class. Por ahora quiero burlarme de los values() y del método filter() . Para probar que he creado un pequeño proyecto de prueba: Crear un entorno virtual. Ejecutar pip install django mock mock-django nose django-nose Crear un proyecto django-admin.py startproject mocktest Crear una aplicación […]

¿Cuál es el reemplazo para DateModifierNode en las nuevas versiones de Django?

Quiero hacer una consulta basada en dos campos de un modelo, una fecha, compensada por un int, utilizada como un timedelta model.objects.filter(last_date__gte=datetime.now()-timedelta(days=F(‘interval’))) es un no-go, ya que una expresión F () no se puede pasar a un timedelta Un poco de investigación, y descubrí el DateModifierNode , aunque parece que se eliminó en este compromiso: […]

Actualización masiva de Django con cadena de reemplazo

Estoy tratando de actualizar y modificar un campo de cadena ORM de Django. El SQL equivalente para hacer esto es: UPDATE example_table SET string_field = REPLACE(string_field, ‘old text’, ‘new text’); Con esa consulta, espero que el old text y el old text more text sean reemplazados por el new text new text more text y […]

Django ORM – objects.filter () vs. objects.all (). Filter () – ¿cuál es el preferido?

Muy a menudo veo constructos como MyModel.objects.all().filter(…) que devolverá un QuerySet del administrador predeterminado. Al principio, all() parece ser bastante redundante, porque MyMode.objects.filter(…) Ofrece el mismo resultado. Sin embargo, esto parece ser seguro solo para el Administrador predeterminado, debido a las siguientes dos declaraciones en la documentación de Django: Extracto del capítulo “Adición de métodos […]