作者linchen1 (coolman)
看板Python
标题Re: [问题] django model引进其他model
时间Mon Aug 2 13:18:15 2010
google了好久
总算让我找到解决方法了
再说明一下问题好了
问题是:因为将所有的class都写在同一个model.py会变得不容易管理,且档案会变很大
所以想要将class切成较小的档案来使用
[资料夹架构]
mysite
-setting.py
-books
-__init__.py
-Model
-__init__.py
-model.py
-Publisher.py
-Book.py
-Author.py
红色代表位置有更动的地方
[档案内容]
model.py
========
from books.Model.Publisher import *
from books.Model.Author import *
from books.Model.Books import *
setting.py
========
INSTALLED_APPS = (
...
'TMSTAF.mysite.Model',
}
*指令必须要用python manage.py sql Model
*因为model.py在Model之下
[参考资料]
http://justinlilly.com/blog/2009/oct/27/fix-your-models-subdir/
http://0rz.tw/9wqo6
http://0rz.tw/pGKkz
http://0rz.tw/tBYcR
希望能帮到和我碰到一样问题的人:-D
※ 引述《linchen1 (coolman)》之铭言:
: 最近刚开始接触django和python
: 按照了turtorial练习
: 在model的那一章节
: 会把资料库的全部内容写在app的models.py里头
: 但我想要把不同的class都分开来
: 并统一放在一个Model的资料夹中
: 但最後跑的结果是错误的
: 以下是详细的介绍
: [资料夹架构](仅列出以下有提及的)
: mysite
: -setting.py
: -books
: -__init__.py
: -models.py
: -Model
: -Publisher.py
: -Book.py
: -Author.py
: 绿色代表资料夹
: [档案内容]
: models.py
: ==========
: from Model import Publisher.py
: from Model import Book.py
: from Model import Author.py
: Publisher.py
: ==========
: from django.db import models
: class Publisher(models.Model):
: name = models.CharField(max_length=30)
: Book.py
: ==========
: from django.db import models
: class Book(models.Model):
: title = models.CharField(max_length=100)
: Author.py
: ==========
: from django.db import models
: class Author(models.Model):
: first_name = models.CharField(max_length=30)
: [执行结果]
: 执行python manage.py syncdb的结果
: 会有一堆错,以下是最後三行
: File "D:\python\mysite\..\mysite\books\models.py", line 1, in <module>
: from Model import Publisher
: ImportError: No module named Model
: 我google查了很久,有人说必须要在Model下放入一个空的__init__.py
: 执行python manage.py syncdb还真的OK
: 但是执行python manage.py sql books却看不到class的内容(资料库架构)
: 这样应该还是错吧?
: 好像也有人说是setting.py的问题
: 所以以下是我的setting.py中的INSTALLED_APPS
: INSTALLED_APPS = (
: 'django.contrib.auth',
: 'django.contrib.contenttypes',
: 'django.contrib.admin',
: 'mysite.books',
: )
: 想问应该要怎麽写才会对呢?
: 因为急着要解决
: 所以尽可能的把所有资讯打上去了
: 很感谢愿意看完的版友
: 先谢谢大家了:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.211.32.194
※ 编辑: linchen1 来自: 218.211.32.194 (08/02 13:18)
1F:推 asoedarren:thanks 08/03 12:37
2F:推 wadd:推一下^^ 08/03 14:10