最近買了It's Django書籍練習
大致上都可以操作成功
這幾天遇到一個問題卡關三天了
想請問這Django大大
[Q1]:
在It's Django第八章 模型與資料庫p134~p136
Step1:進入Django shell
Step2:建立模型物件
>>>from restaurants.models import Restaurant,Food
>>>r1=Restaurant(name='派森家常小館',phone_number='02-12345678',
address='天龍國天龍區天龍路一號')
>>>r1
<Restaurant:Restaurant object>
(這句話是為了證明r1是Restaurant物件)
step3:存檔
>>>r1.save()
step4:書上建議希望一次完成模型資料的建立與寫入資料庫objects.create所以
>>>r2=Restaurant.objects.creat(name='古意得餐聽',
phone_number='02-87654321',address='天龍國天龍區天龍路一百號')
>>>r2
<Restaurant:Restaurant object>
step5:r1與r2在shell出來的資訊會造成辨識困難
所以在原本的models.py增加_unicode_
===============================================================
from django.db import models
class Restaurant(models.Model):
name=models.CharField(max_length=20)
phone_number=models.CharField(max_length=15)
address=models.CharField(max_length=50,blank=True)
def __unicode__(self):
return self.name
#(增加_unicode_)
class Food(models.Model):
name=models.CharField(max_length=20)
price=models.DecimalField(max_digits=3,decimal_places=0)
comment=models.CharField(max_length=50,blank=True)
is_spicy=models.BooleanField(default=False)
restaurant=models.ForeignKey(Restaurant)
def _unicode_(self):
return self.name
#(增加_unicode_)
=================================================================
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>出現四次????
而不是書上預期的答案會出現旅館名子?卡關四天
先感謝高手大大們(雖然打字很辛苦 你們看更辛苦)
[Q2]:
另外有個問題想請問怎確定是進入Django shell而不是Python shell??
按照網路Djangogirls教學文章
https://djangogirlstaipei.gitbooks.io/django-girls-taipei-tutorial/content/django/installation.html
(djangogirls_venv) ~/djangogirls/mysite$ python manage.py shell
可進入Django 可是在我電腦確有問題而進不了下階段>>>畫面
(我的電腦資訊請參考Windows8/Python3.4/Django1.8
而我是參考官方Django文件
https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-shell
輸入指令python manage.py shell