Скажите 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
ненадежным?
Спасибо за любые подсказки / указатели и обмен опытом!