【问题标题】:syncdb doesnt create tables for my appsyncdb 不会为我的应用程序创建表
【发布时间】:2011-07-14 08:49:26
【问题描述】:

你好 我正在试用django框架,我的项目结构是这样的

../mysite/src/mysite/models/models.py(models.py 包含所有定义的模型) ../mysite/src/mysite/(包含settings.py manage.py等)

当我运行同步数据库时。仅创建 django admin 的表。但未检测到我在 models.py 中的模型。

在 settings.py 的 INSTALLED_APPS 部分。我添加了“我的网站”。

如果我从 'mysite' ->'mysite.src' 更改,它将给出错误“错误:没有名为 src 的模型” 如果我从 'mysite' -> 'mysite.models.models' 更改,它将给出 'AttributeError: 'module' object has no attribute 'path' '

谁能帮我处理syncdb?

非常感谢

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    如果您想拥有一个包含许多模型定义文件的“模型”文件夹。您应该在模型文件夹中包含一个名为 init.py 的文件,您应该在其中导入应用程序的所有模型

    # app/models/__init__.py
    # assuming you have main_models and other_models files 
    from app.models.main_models import *
    from app.models.other_models import *
    

    【讨论】:

      【解决方案2】:

      你理想的应用结构是

      ProjectDirectory/
       |- settings.py
       |- urls.py
       \- AppDirectory
           |- __init__.py
           |- views.py
           \- models.py
      

      如果您希望它在当前配置中工作(我假设 /src 在这个意义上是您的“项目目录”,并且已添加到您的 python 路径或包含 manage.py)然后在模型目录中包含一个名为__init__.py 的文件并添加行from models import *。这将导入所有内容并使您的 models.py 中的所有内容都可以被 django 访问到它期望的位置。

      【讨论】:

        【解决方案3】:

        我找到了问题所在。我的 Models.py 应该是 models.py.... 不应该以大写的 M 开头。

        感谢大家的帮助

        【讨论】:

          【解决方案4】:

          无论您的实际项目目录在哪里,您都需要将models 应用程序添加到您的INSTALLED_APPS,使用python 点语法但是您的models 应用程序是可解析的。

          如果顶级mysite 在您的python 路径中,那么它将是src.mysite.models。如果src 在你的python 路径中,那么mysite.models

          您应该将 django 项目目录的父文件夹(settings.py 所在的位置)添加到您的 python 路径,因此您的应用程序将被称为project.app

          【讨论】:

            【解决方案5】:

            添加到您的设置文件

            import os
            import sys
            
            ROOT_PATH = os.path.dirname(__file__)
            sys.path.append(ROOT_PATH + '/src')
            

            然后再检查一遍

            【讨论】:

              【解决方案6】:

              将您的models.py 文件从models 目录移出并放回mysite 目录。之后再试一次,它现在应该可以工作了...syncdb 依赖于文件/目录结构。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-05-01
                • 2014-06-07
                • 1970-01-01
                • 2023-04-07
                • 2012-05-09
                • 2017-11-26
                相关资源
                最近更新 更多