2

Есть ли способ получить тип внешнего ключа модели, к которой относится мой ключ? В настоящее время я пытаюсь что-то вроде:Django: Получение типа внешнего ключа

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... 


Я пытаюсь программно установить доступные варианты, которые будут показаны в моей форме. До сих пор я только был в состоянии понять, что этот фрагмент ниже получает меня какое-то отношение к основным внешним объектом ...

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


Любая помощь будет принята с благодарностью.

ответ

4

Фигурные это ... это было очень запутанным и утомительный процесс реж-х и типа, но эта линия получит мне тип модели, что внешний ключ связан с:

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