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'