如何在Django中使用模型名称字符串获取模型对象

Aka*_*nde 13 django django-views

应将描述:

我有一个通用的功能

def gen(model_name,model_type): 
      objects = model_name.objects.all()
      for object in objects:
          object.model_type = Null      (Or some activity)
          object.save()
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现上述目标?可能吗?

Chr*_*att 39

我会用get_model:

from django.db.models import get_model

mymodel = get_model('some_app', 'SomeModel')
Run Code Online (Sandbox Code Playgroud)

  • 你好。我在第一行收到一条错误消息,提示“无法导入名称 get_model”。最新的 Django 版本有什么变化吗? (2认同)
  • @ Y2H是的,请看这里:/sf/ask/341712521/ (2认同)

小智 21

从Django 1.7开始,django.db.models.loading 不赞成使用新的应用程序加载系统(将在1.9中删除).该1.7文档给我们,而不是执行以下操作:

$ python manage.py shell
Python 2.7.6 (default, Mar  5 2014, 10:59:47)
>>> from django.apps import apps
>>> User = apps.get_model(app_label='auth', model_name='User')
>>> print User
<class 'django.contrib.auth.models.User'>
>>>
Run Code Online (Sandbox Code Playgroud)