我有两个模型,我想根据它们的ID找出常用的值集
第一个模型:
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'
另一种模式:
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'
现在,在我的观点中,我为两个模型创建了对象:
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()
我希望在Universities
模型和universityId
NewsUniversityMappings
模型的基础上找到两个模型的共同点。任何帮助都将受到赞赏。
提前致谢
答案 0 :(得分:1)
好吧,我不确定这是不是你想要的,但是:
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)
现在在university_list
中,您只有Universities
ID,这是在{I} NewsUniversityMappings
中至少有一个的universityId变量中的某个位置。
是吗?