django1.7 Résumé des points sur lesquels je suis resté coincé en faisant le tutoriel https://docs.djangoproject.com/en/1.7/intro/tutorial01/
Notez que les commandes jusqu'à la migration sont différentes. Voici la méthode en 1.7.
mysite/setting.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
)
Ajouter une application de sondage à django
Exécutez la commande suivante
・ Création du fichier de migration
$ python manage.py makemigrations polls
Lorsqu'il est exécuté normalement, ce sera comme suit
Migrations for 'polls':
0001_initial.py:
- Create model Question
- Create model Choice
- Add field question to choice
Un fichier appelé 0001_initial.py est créé Les modèles de questions et de choix y sont définis Ceci est le fichier de migration.
-Création de SQL pour la migration
$ python manage.py sqlmigrate polls 0001
Si cela réussit, vous verrez ce qui suit
BEGIN;
CREATE TABLE polls_question (
"id" serial NOT NULL PRIMARY KEY,
"question_text" varchar(200) NOT NULL,
"pub_date" timestamp with time zone NOT NULL
);
CREATE TABLE polls_choice (
"id" serial NOT NULL PRIMARY KEY,
"question_id" integer NOT NULL,
"choice_text" varchar(200) NOT NULL,
"votes" integer NOT NULL
);
CREATE INDEX polls_choice_7aa0f6ee ON "polls_choice" ("question_id");
ALTER TABLE "polls_choice"
ADD CONSTRAINT polls_choice_question_id_246c99a640fbbd72_fk_polls_question_id
FOREIGN KEY ("question_id")
REFERENCES "polls_question" ("id")
DEFERRABLE INITIALLY DEFERRED;
COMMIT;
・ Exécution de la migration
$ python manage.py migrate
polls/model.py
from django.db import models
class Question(models.Model):
# ...
def __str__(self): # __unicode__ on Python 2
return self.question_text
class Choice(models.Model):
# ...
def __str__(self): # __unicode__ on Python 2
return self.choice_text
De cette façon, le shell interactif devrait ressembler à ceci
>>> Question.objects.all()
[<Question: What's up?>]
Ce sera comme suit
>>> Question.objects.all()
[<Question: Question object>]
Remarque: Les données exécutées par le shell interactif sont enregistrées dans la base de données telles quelles.
**[Solution] Après la mise à jour de model.py, cela sera reflété si vous quittez le shell interactif une fois et redémarrez le shell interactif. ** **
Recommended Posts