Скажем my_instance
имеет модель MyModel
.
Я ищу хороший способ:
my_model = get_model_for_instance(my_instance)
Я не нашел прямого способа сделать это. До сих пор я придумал следующее:
from django.db.models import get_model
my_model = get_model(my_instance._meta.app_label, my_instance.__class__.__name__)
Это приемлемо? Это даже верный способ, лучший способ сделать это?
Существует также _meta.object_name
, который, как представляется, дает то же самое, что и __class__.__name__
. Имеет ли это? Лучше или хуже? Если да, то почему?
Также, как я узнаю, что получаю правильную модель, если метка приложения несколько раз входит в объем проекта, например. 'auth' из 'django.contrib.auth' и пусть также будет 'myproject.auth'?
Может ли такой случай сделать get_model
ненадежным?
Спасибо за любые подсказки/указатели и обмен опытом!