Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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_Django Models_Foreign Keys_Foreign Key Relationship - Fatal编程技术网

Django:获取外键类型

Django:获取外键类型,django,django-models,foreign-keys,foreign-key-relationship,Django,Django Models,Foreign Keys,Foreign Key Relationship,是否有方法获取与我的密钥相关的型号的外键类型?目前,我正在尝试以下方法: def __init__(self, *args, **kwargs): super(JobOrderSupplementForm, self).__init__(*args, **kwargs) for field in self.fields: if type(self.fields[field]) == TypedChoiceField:

是否有方法获取与我的密钥相关的型号的外键类型?目前,我正在尝试以下方法:

def __init__(self, *args, **kwargs):
        super(JobOrderSupplementForm, self).__init__(*args, **kwargs)
        for field in self.fields:
            if type(self.fields[field]) == TypedChoiceField:
                fieldOption = <Whatever type key points to>.get(id=self.__dict__['initial'][field])
                if not fieldOption.isActive:
                    ...Do something to the choices...
def\uuuu init\uuuu(self,*args,**kwargs):
超级(JobOrderSupplementForm,self)。\uuuuuu初始值(*args,**kwargs)
对于self.fields中的字段:
如果类型(self.fields[field])==类型选择字段:
fieldOption=.get(id=self.\u dict.\u['initial'][field])
如果不是fieldOption.isActive:
…对选择做点什么。。。

我试图以编程方式设置表单中显示的可用选项。到目前为止,我只知道下面这段代码与外键对象有某种联系

self.fields[field].__dict__['coerce']
>>> <bound method ForeignKey.to_python of <django.db.models.fields.related.ForeignKey object at 0x01609EF0>>
self.fields[field]。_dict___['concure']
>>> 


任何帮助都将不胜感激。

解决了。。。这是一个非常复杂和乏味的dir和type过程,但是,这一行将为我提供与外键相关的模型类型:

    getattr(type(self.instance), field).field.rel.to

也许您应该查看为Django 2.2更新的?

,其中
字段.rel.to
对象路径不再显示

 getattr(type(self.instance), field).field.related_model