【问题标题】:Django 1.5 - adding base class for models and viewsDjango 1.5 - 为模型和视图添加基类
【发布时间】:2013-08-14 11:17:53
【问题描述】:

我正在尝试为我在不同应用程序中定义的所有模型添加基类。我创建了一个包为lib/base.py

from django.db import models
import logging

# Get an instance of a logger
logger = logging.getLogger(__name__)

class Base(models.Model):

class Meta:
        abstract = True

现在在不同的主应用程序目录中,我想使用这个基本模型:

from django.db import models
from libs.base import Base
# Create your models here.
class Home(Base):
    msg = models.CharField(max_length=100)

    @classmethod
    def create(cls, msg):
        home = cls(msg=msg)
        # do something with the book
        return home

当我运行服务器时,出现以下错误:

 File "/Users/.../home/models.py", line 2, in <module>
    from libs.base import Base
ImportError: No module named libs.base

我在这里找不到我缺少的东西?

【问题讨论】:

  • 等一下,我希望,您的lib/base.py 不等于您的列表?因为如果ModelBase 是一个空类,你应该使用pass
  • 更正:我将基类名称更新为:
  • from django.db import models import logging # 获取记录器的实例 logger = logging.getLogger(name) class Base(models.Model): class Meta: abstract = 真
  • 如果真的没有与Base类相关的代码,你应该在class ModelBase(models.Model):之后附加一行pass
  • 换句话说,我认为lib/base.py 的语法有误。尝试通过python执行base.py

标签: python django base


【解决方案1】:

您应该将您的 libs 模块附加到您项目的已安装应用程序中:

settings.py:

...
INSTALLED_APPS = (
    ...
    'home',
    ...
    'libs', # Add this!
)
...

【讨论】:

  • 尝试删除项目中所有__pycache__目录
猜你喜欢
  • 2014-10-12
  • 2013-08-11
  • 1970-01-01
  • 2023-03-22
  • 2013-03-07
  • 1970-01-01
  • 2013-09-23
  • 1970-01-01
  • 2017-05-14
相关资源
最近更新 更多