django1.7 Zusammenfassung der Punkte, bei denen ich beim Tutorial hängen geblieben bin https://docs.djangoproject.com/en/1.7/intro/tutorial01/
Beachten Sie, dass die Befehle bis zur Migration unterschiedlich sind. Das Folgende ist die Methode in 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',
)
Hinzufügen einer Umfrageanwendung zu Django
Führen Sie den folgenden Befehl aus
・ Erstellung einer Migrationsdatei
$ python manage.py makemigrations polls
Bei normaler Ausführung ist dies wie folgt
Migrations for 'polls':
0001_initial.py:
- Create model Question
- Create model Choice
- Add field question to choice
Eine Datei mit dem Namen 0001_initial.py wird erstellt Darin sind Frage- und Auswahlmodelle definiert Dies ist die Migrationsdatei.
-Erstellen von SQL für die Migration
$ python manage.py sqlmigrate polls 0001
Wenn dies erfolgreich ist, sehen Sie Folgendes
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;
・ Durchführung der 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
Auf diese Weise sollte die interaktive Shell so aussehen
>>> Question.objects.all()
[<Question: What's up?>]
Es wird wie folgt sein
>>> Question.objects.all()
[<Question: Question object>]
Hinweis: Die von der interaktiven Shell ausgeführten Daten werden unverändert in der Datenbank gespeichert.
** [Lösungen] Nach dem Aktualisieren von model.py wird angezeigt, ob Sie die interaktive Shell einmal beenden und die interaktive Shell erneut starten. ** ** **
Recommended Posts