作者jackjenny (痛苦)
看板Python
标题Re: [问题] Django模型与资料库(书籍It's Django)
时间Thu Mar 24 04:34:54 2016
大大你好
刚又摸索五小时 失败的只好问你
我是python3已修从__unicode__ to __str__
後来去网路查差异表时 也有提到python2 python3差别 是我没注意
修改後 再次执行
如原文
step6:离开shell让刚修改的models.py可以被载入直译器
: : 在进入Django shell 并再次汇入
: : >>>from restaurant.models import Restaurant,Food
: : >>>restaurants=Restaurant.objects.all()
: : >>>restaurants
: : [<Restaurant:派森家常小馆>,<Restaurant:古意的餐厅>]
: : #(这是书上预设的答案会出现两家旅馆名称但是我操作却是以下答案
: : [<Restaurant:Restaurant object>,<Restaurant:Restaurant object>,
: : <Restaurant:Restaurant object>,<Restaurant:Restaurant object>,
<Restaurant:Restaurant object>,<Restaurant:Restaurant object>,
<Restaurant:Restaurant object>,<Restaurant:Restaurant object>,
Q2:刚才发现在执行Q1之前
执行python manage.py makemigrations restaurants ,可得到0001_initial.py档
但是要转到资料库执行 python manage.py migrate restaurant 0001
履次都无效 它说
Operationa to perform:
Target specific migration:0001_initial,from restaurants
Running migrations:
No migrations to apply.
天啊 怎可能会无效 我都有0001_initial.py档
竟然说找不到migrations到migrate
请问怎会这样了?是这样会造成Q1问题吗?
我试过从0001档的models 去做修改成0002档 在修改回原本初档到0003档
让0003档执行migrate 竟然说过了OK
@@ 奇怪 怎会这样啦?
不过就算这样过了 Q1问题还在
请问哪边有错
谢谢
※ 引述《drm343 (一卡)》之铭言:
: ※ 引述《jackjenny (痛苦)》之铭言:
: 原文恕删
: : [Q1]:
: : =================================================================
: : step6:离开shell让刚修改的models.py可以被载入直译器
: : 在进入Django shell 并再次汇入
: : >>>from restaurant.models import Restaurant,Food
: : >>>restaurants=Restaurant.objects.all()
: : >>>restaurants
: : [<Restaurant:派森家常小馆>,<Restaurant:古意的餐厅>]
: : #(这是书上预设的答案会出现两家旅馆名称但是我操作三天都是以下答案
: : [<Restaurant:Restaurant object>,<Restaurant:Restaurant object>,
: : <Restaurant:Restaurant object>,<Restaurant:Restaurant object>] )
: : #本文问题就是为什<Restaurant:Restaurant object>出现四次????
: : 而不是书上预期的答案会出现旅馆名子?卡关四天
: : 先感谢高手大大们(虽然打字很辛苦 你们看更辛苦)
: 我的第一感是你装的 python 版本跟书上的不同,後来看到你 Q2 就确定了。
: __unicode__ 是 python2 的作法,到 python3 时要改用 __str__。
: python2 跟 python3 之间有很多细部差异,如果不清楚这些差异,建议跟书本
: 使用相同版本的 python,那本我好像只有在书局翻过一次,印象中是用 python2。
: : [Q2]:
: : 证据就是输入指令变成>>>
: : 但一开始的欢迎画面却是Python3.4版本资讯
: : 让我犹豫是回到python shell而不是Django shell
: : 这方面有大大能回答吗
: : 卡关三天很沮丧中...............
: : 感谢
: 其实 django shell 只是帮你把 django 的环境自动载入 python shell 中,
: 所以直接跑 python shell 再自己手动载入 django 也是一样的意思,只是比
: 较累。
: 理论上你建立 django project 後,在 project 内一定会有一份 manage.py,
: 在 linux 上预设应该是可执行的,所以在 manage.py 那个目录直接下下面这
: 段程式就可以,不需要前面那个 python。
: ./manage.py shell
--
KAI 微笑看世界100国
https://www.facebook.com/travel100countries
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.235.86
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1458765297.A.B56.html
1F:推 ihcaoe: Q1: 你把db.sqlite3 删掉,再migrate一次後试试 03/24 14:43
2F:推 drm343: 已回信 03/24 15:25