【发布时间】:2013-10-24 07:49:49
【问题描述】:
我有一个包含两个应用程序的 django 项目,experiments 和 metadata,在一个视图中,我需要使用这两个应用程序的模型,所以我有这个:
from experiments.models import *
from metadata.models import *
我的两个应用程序都有一个同名的模型;那么如何在一个应用中使用两个模型呢?
【问题讨论】:
我有一个包含两个应用程序的 django 项目,experiments 和 metadata,在一个视图中,我需要使用这两个应用程序的模型,所以我有这个:
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()
顺便说一句。 from module import * 被认为是不好的做法,它会弄乱你的命名空间。
【讨论】:
假设在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
【讨论】: