Tengo dos modelos y quiero averiguar los conjuntos de valores comunes en función de sus identificadores.
Primer modelo:
from __future__ import unicode_literals from django.db import models from django.contrib.auth.models import User # WE ARE AT MODELS/UNIVERSITIES class Universities(models.Model): id = models.IntegerField(db_column="id", max_length=11, help_text="") name = models.CharField(db_column="name", max_length=255, help_text="") abbreviation = models.CharField(db_column="abbreviation", max_length=255, help_text="") address = models.CharField(db_column="address", max_length=255, help_text="") status = models.BooleanField(db_column="status", default=False, help_text="") createdAt = models.DateTimeField(db_column='createdAt', auto_now=True, help_text="") modifiedAt = models.DateTimeField(db_column='modifiedAt', auto_now=True, help_text="") updatedBy = models.ForeignKey(User,db_column="updatedBy",help_text="Logged in user updated by ......") class Meta: managed = False get_latest_by = 'createdAt' db_table = 'universities'Y el otro modelo:
from __future__ import unicode_literals from django.db import models class NewsUniversityMappings(models.Model): id = models.IntegerField(db_column="id", max_length=11, help_text="") newsMappingId = models.IntegerField( db_column='newsMappingId' ,max_length=11, help_text="") universityId = models.IntegerField( db_column='universityId', max_length=11, help_text="") createdAt = models.DateTimeField(db_column='createdAt', auto_now=True, help_text="") class Meta: managed = False db_table = 'news_university_mappings'Ahora, en mi opinión, he creado objetos para ambos modelos:
def add_promoter_news(request, mapping_id=None, news_virtual_id=None): try: university_all_list = Universities.objects.using("cms").all published_university_list = NewsUniversityMappings.objects.using("cms").filter(newsMappingId=news_virtual_id).all() Quiero encontrar el común de ambos modelos sobre la base del modelo de Universities y el modelo universityId of NewsUniversityMappings Cualquier ayuda sería apreciada. Gracias por adelantado
Bueno, no estoy seguro de si esto es lo que quieres, pero:
def add_promoter_news(request, mapping_id=None, news_virtual_id=None): try: # Get that queryset published_university_list = NewsUniversityMappings.objects.using("cms").filter(newsMappingId=news_virtual_id).all() # Get list of distinct universityIds published_university_IDS_list = published_university_list.values_list('universityId',flat=True).distinct() # Get queryset of all Universities university_all_list = Universities.objects.using("cms").all() # Get queryset of universities with ids on previous list university_list = university_all_list.filter(id__in=published_university_IDS_list) Ahora, en university_list , solo tiene Universities con ID, que estaba en algún lugar de la variable universityId de al menos uno de NewsUniversityMappings . ¿Es asi?