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