Django 如何在嵌套的foreignKey中查询
这个想法很简单,我必须在func中查询几个模型。为了保持模板中的整洁,我决定抽象一个包含数据的新模型。我正在通过lambda创建模型 这些是模型Django 如何在嵌套的foreignKey中查询,django,django-models,django-queryset,Django,Django Models,Django Queryset,这个想法很简单,我必须在func中查询几个模型。为了保持模板中的整洁,我决定抽象一个包含数据的新模型。我正在通过lambda创建模型 这些是模型 class Contact(models.Model): created_date = models.DateTimeField(auto_now_add=True) updated_date = models.DateTimeField(auto_now=True) lastname = models.CharField(max_l
class Contact(models.Model):
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
lastname = models.CharField(max_length=50, null=True, blank=True)
firstname = models.CharField(max_length=50, null=True, blank=True)
email = models.EmailField(null=True, blank=True)
class CRecord(models.Model):
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
place = models.ForeignKey(Place, related_name="record")
contact = models.ForeignKey(Contact, blank=True, null=True, related_name="records")
class Place(models.Model):
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
deleted_date = models.DateTimeField(blank=True, null=True)
name = models.CharField(max_length=100, db_index=True)
lat = models.FloatField(db_index=True)
lon = models.FloatField(db_index=True)
以下是创建新对象的lambda:
tr_contact = lambda x: dict(first_name=x.firstname,
last_name=x.lastname,
owned_place=?)
基本上,我想得到的是CRecord中包含的地方。我正在挣扎的部分是,对于每个联系人,都有几个记录,在每个记录中,都有几个地方。字段所属的位置应等于每个记录中包含的每个位置
我试过几次,甚至想知道在一个请求中是否真的有可能。。。您在这里所做的基本上是重新创建或列出值 这里的区别是,您的方法是解决整个查询查找,这比它需要的成本更高,所以要么使用上面的
my_records_queryset.values('firstname', 'lastname', 'place')
或者,您可能希望研究哪种方法可以让您更好地控制为关系字段返回的值。您想做什么?您是在创建新对象,还是在过滤某些对象?您正在尝试创建/筛选哪种类型的对象?你的问题不清楚这些细节。我正在尝试筛选。我所说的创建部分是关于模板的,你是对的,实际上并不清楚。。我在试着过滤。我已筛选了所有联系人,并希望检索每个记录中的所有位置。单个联系人可能有多个记录。请包括相关代码视图或尝试执行此筛选的任何功能。