Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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获取模型的所有外键名称_Django_Foreign Keys - Fatal编程技术网

Django获取模型的所有外键名称

Django获取模型的所有外键名称,django,foreign-keys,Django,Foreign Keys,我需要获取单个模型的所有外键名称。例如,如果一个模型名为UserProfile,它有user、customer和comment作为外键,这意味着通过单个代码,我想获得UserProfile模型的所有外键名。您可以找到这样的关系:UserProfile.\u meta.get\u所有相关的\u对象() 您可以通过UserProfile直接遍历模型上的字段。\u meta.fields 您可以通过field.get\u internal\u type() @Zeeker我试过[k.name代表对象中

我需要获取单个模型的所有外键名称。例如,如果一个模型名为
UserProfile
,它有
user
customer
comment
作为外键,这意味着通过单个代码,我想获得
UserProfile
模型的所有外键名。

您可以找到这样的关系:
UserProfile.\u meta.get\u所有相关的\u对象()

您可以通过
UserProfile直接遍历模型上的字段。\u meta.fields

您可以通过
field.get\u internal\u type()


@Zeeker我试过[k.name代表对象中的k.\u meta.\u field\u name\u cache如果dir(k)中的'foreign\u related\u fields')@Zeeker我也试过这个[k.name代表对象中的k.\u meta.\u field\u name\u cache如果k.\u class\uuu.\uu name\uuu==“ForeignKey”]
get\u所有相关的\u对象已被弃用,并且从Django 1.10开始不再存在。您可以使用此1行代码存储字段
fields=[模型中的字段对应字段。_meta.fields if field.get\u internal\u type()=='ForeignKey']
@radtek nice one liner。一句话并不总是最容易沟通/阅读的,所以我倾向于避免它们。这没有错,但也不对。
for field in UserProfile._meta.fields:
    if field.get_internal_type() == 'ForeignKey':
        print 'found a foreign key'