Django:如何从模型关系创建查询集?
一段时间以来,我一直在努力把握关系,如果有人能在这个问题上帮助我,我将非常感激 我有一个通过一对多将用户模型连接到ProcessInfo模型的关系,然后我有一个将ProcessInfo作为一对一连接到ProcessInfo模型的关系 是否有一种方法可以使用用户id从该用户处获取与所有流程相关的所有流程假设 我想检索与用户id相关的所有ProcessAssumption的查询集 以下是模型关系:Django:如何从模型关系创建查询集?,django,django-models,Django,Django Models,一段时间以来,我一直在努力把握关系,如果有人能在这个问题上帮助我,我将非常感激 我有一个通过一对多将用户模型连接到ProcessInfo模型的关系,然后我有一个将ProcessInfo作为一对一连接到ProcessInfo模型的关系 是否有一种方法可以使用用户id从该用户处获取与所有流程相关的所有流程假设 我想检索与用户id相关的所有ProcessAssumption的查询集 以下是模型关系: class ProcessInfo(models.Model): process_name
class ProcessInfo(models.Model):
process_name = models.CharField(max_length=120, null=True)
user_rel = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
class ProcessAssumptions(models.Model):
completion_time = models.FloatField(default='0')
process_rel_process = models.OneToOneField(ProcessInfo, primary_key = True, on_delete=models.CASCADE)
对外键使用字段引用
process\u-assemption\u-objects=processassemptions.objects.filter(process\u-rel\u-process\u-user\u-rel=)
将
替换为要查询的id。在另一个模型Y中定义与模型X的关系时,可以通过X\u instance.Y\u set.all()从X的实例访问所有相关的Y。您甚至可以对其执行常规的筛选
或获取
操作X\u instance.Y\u set
是Y的默认对象管理器(与Y.objects相同),但它被过滤为仅包含与X\u instance相关的对象。
因此,在这种特定情况下,您可以获得特定用户的所有ProcessInfo
对象,如下所示:
user=user.objects.get(用户id)
必需的假设=[user.process\u info\u set.all()中的proc\u信息的proc\u info.process\u假设]
使用\u set
后缀可能有点难以理解,因此您可以在定义模型上的关系时定义相关的\u name
参数。
比如:
#类内进程信息
user\u rel=models.ForeignKey(user,null=True,on\u delete=models.SET\u null,related\u name='processes')
#现在你可以做了
某些用户.processs.all()