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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Python 如何在django中查看模型的所有可能查询集_Python_Django - Fatal编程技术网

Python 如何在django中查看模型的所有可能查询集

Python 如何在django中查看模型的所有可能查询集,python,django,Python,Django,我在django有两个类似的型号 class User(AbstractBaseUser, PermissionsMixin): first_name = models.CharField(....) last_name = models.CharField(_(....) email = models.EmailField(...) class VcsToken(models.Model): user = models.ForeignKey(User, on_

我在django有两个类似的型号

class User(AbstractBaseUser, PermissionsMixin):
    first_name = models.CharField(....)
    last_name = models.CharField(_(....)
    email = models.EmailField(...)

class VcsToken(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
如您所见,
VcsToken
与用户相关,一个用户可以有许多
VcsToken

  • 那么如何获得
    用户的所有
    VcsTokens

  • 类似地,我有从用户到其他模型的多对多关系,那么我如何知道它们的引用名称呢?(我知道它是一个
    集合
    ,但是我怎么知道集合名称呢?)有没有办法列出模型的查询集合名称


  • 您要寻找的是在外键关系上向后走的功能。这在文档中有介绍:

    在您的示例中,您应该能够从用户处访问VcsToken,如下所示:

    user=user.objects.get(pk=1)#让我们来看一个示例用户
    user.vcstoken_set.all()#返回所有相关的vcstoken对象。
    
    或者,当定义ForeignKey时,您可以指定django将用于此目的的
    相关_name
    参数。例如:

    类用户(AbstractBaseUser,PermissionsMixin):
    ...
    email=models.EmailField(…)
    VcsToken类(型号.型号):
    user=models.ForeignKey(用户,在_delete=models.CASCADE上,相关的_name='tokens')
    
    如果指定了这样一个参数,那么这就是django使用的反向查找名称,您需要执行
    user.tokens.all()
    来访问它们。如果未指定此类参数,django将使用以“\u set”结尾的默认名称


    希望这有帮助,如果有什么需要澄清的,请告诉我。

    您正在寻找的是在外键关系上向后走的功能。这在文档中有介绍:

    在您的示例中,您应该能够从用户处访问VcsToken,如下所示:

    user=user.objects.get(pk=1)#让我们来看一个示例用户
    user.vcstoken_set.all()#返回所有相关的vcstoken对象。
    
    或者,当定义ForeignKey时,您可以指定django将用于此目的的
    相关_name
    参数。例如:

    类用户(AbstractBaseUser,PermissionsMixin):
    ...
    email=models.EmailField(…)
    VcsToken类(型号.型号):
    user=models.ForeignKey(用户,在_delete=models.CASCADE上,相关的_name='tokens')
    
    如果指定了这样一个参数,那么这就是django使用的反向查找名称,您需要执行
    user.tokens.all()
    来访问它们。如果未指定此类参数,django将使用以“\u set”结尾的默认名称


    希望这有帮助,如果需要澄清,请告诉我。

    对于给定的
    用户
    对象
    myuser
    ,您可以通过以下方式访问此内容:

    myuser.vcstoken_set.all()

    这将反向构造
    外键
    的名称列表。

    对于给定的
    用户
    对象
    我的用户
    ,您可以通过以下方式访问此列表:

    myuser.vcstoken_set.all()
    这将构建一个
    外键
    s的名称列表,其顺序相反。

    谢谢:),惯例让我感到困惑。我试着用复数形式(谢谢:),这个惯例把我弄糊涂了。我试着用复数形式