Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在一个应用程序中使用多个模型?_Django_Models - Fatal编程技术网

Django 如何在一个应用程序中使用多个模型?

Django 如何在一个应用程序中使用多个模型?,django,models,Django,Models,我有一个django项目,有两个应用程序,实验和元数据,在一个视图中,我需要使用这两个应用程序中的模型,因此我有: from experiments.models import * from metadata.models import * 我的两个应用程序都有一个同名的模型;那么如何在一个应用程序中使用两个模型呢 from experiments import models as exp_models from metadata import models as meta_models f

我有一个django项目,有两个应用程序,
实验
元数据
,在一个视图中,我需要使用这两个应用程序中的模型,因此我有:

from experiments.models import *
from metadata.models import *
我的两个应用程序都有一个同名的模型;那么如何在一个应用程序中使用两个模型呢

from experiments import models as exp_models
from metadata import models as meta_models

foo = exp_models.Foo.objects.all()
bar = meta_models.Bar.objects.all()
顺便说一句,模块导入中的
*
被认为是不好的做法,它会弄乱您的命名空间


顺便说一句,模块导入中的
被认为是不好的做法,它会弄乱您的命名空间。

假设在
实验/models.py
中您有:

class Foo(models.Model):
    name = models.CharField(max_length=200)
metadata/models.py
中,您还有:

class Foo(models.Model):
    name = models.CharField(max_length=200)
现在,如果要同时使用这两个选项,请按如下方式导入它们:

from metadata.models import Foo as meta_foo
from experiments.models import Foo as experiment_foo

假设在
experiments/models.py
中您有:

class Foo(models.Model):
    name = models.CharField(max_length=200)
metadata/models.py
中,您还有:

class Foo(models.Model):
    name = models.CharField(max_length=200)
现在,如果要同时使用这两个选项,请按如下方式导入它们:

from metadata.models import Foo as meta_foo
from experiments.models import Foo as experiment_foo