Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在嵌套的foreignKey中查询_Django_Django Models_Django Queryset - Fatal编程技术网

Django 如何在嵌套的foreignKey中查询

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

这个想法很简单,我必须在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_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')

或者,您可能希望研究哪种方法可以让您更好地控制为关系字段返回的值。

您想做什么?您是在创建新对象,还是在过滤某些对象?您正在尝试创建/筛选哪种类型的对象?你的问题不清楚这些细节。我正在尝试筛选。我所说的创建部分是关于模板的,你是对的,实际上并不清楚。。我在试着过滤。我已筛选了所有联系人,并希望检索每个记录中的所有位置。单个联系人可能有多个记录。请包括相关代码视图或尝试执行此筛选的任何功能。