一尘不染

Django:从字符串中获取模型?

django

在Django中,你可以指定如下关系:

author = ForeignKey('Person')

然后在内部必须将字符串“ Person”转换为模型Person

该功能在哪里?我想使用它,但是找不到。


阅读 727

收藏
2020-03-26

共2个答案

一尘不染

从Django 1.9开始,方法为django.apps.AppConfig.get_model(model_name)
- 丹尼普

从Django 1.7开始,django.db.models.loading不推荐使用(在1.9中将​​其删除),以支持新的应用程序加载系统。斯科特·伍德
(Scott Woodall)

找到了。它在这里定义:

from django.db.models.loading import get_model

定义为:

def get_model(self, app_label, model_name, seed_cache=True):
2020-03-26
一尘不染

django.db.models.loading在Django 1.7中已弃用(在1.9中删除),以支持新的应用程序加载系统。

Django 1.7文档为我们提供了以下内容:

>>> from django.apps import apps
>>> User = apps.get_model(app_label='auth', model_name='User')
>>> print(User)
<class 'django.contrib.auth.models.User'>
2020-03-26