From 406fd9f97f4b04212276e2e78d8216ef5a27a514 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Mon, 22 Apr 2013 19:50:17 +0200 Subject: [PATCH] Fixed #19211 -- Adapted tutorial for Python 3 Backport of 7cc3acbb7 from master. --- docs/intro/tutorial01.txt | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt index a6401545c89..d9e83191709 100644 --- a/docs/intro/tutorial01.txt +++ b/docs/intro/tutorial01.txt @@ -589,27 +589,33 @@ Wait a minute. ```` is, utterly, an unhelpful representation of this object. Let's fix that by editing the polls model (in the ``polls/models.py`` file) and adding a :meth:`~django.db.models.Model.__unicode__` method to both ``Poll`` and -``Choice``:: +``Choice``. On Python 3, simply replace ``__unicode__`` by ``__str__`` in the +following example:: class Poll(models.Model): # ... - def __unicode__(self): + def __unicode__(self): # Python 3: def __str__(self): return self.question class Choice(models.Model): # ... - def __unicode__(self): + def __unicode__(self): # Python 3: def __str__(self): return self.choice_text -It's important to add :meth:`~django.db.models.Model.__unicode__` methods to -your models, not only for your own sanity when dealing with the interactive -prompt, but also because objects' representations are used throughout Django's -automatically-generated admin. +It's important to add :meth:`~django.db.models.Model.__unicode__` methods (or +:meth:`~django.db.models.Model.__str__` on Python 3) to your models, not only +for your own sanity when dealing with the interactive prompt, but also because +objects' representations are used throughout Django's automatically-generated +admin. -.. admonition:: Why :meth:`~django.db.models.Model.__unicode__` and not +.. admonition:: :meth:`~django.db.models.Model.__unicode__` or :meth:`~django.db.models.Model.__str__`? - If you're familiar with Python, you might be in the habit of adding + On Python 3, things are simpler, just use + :meth:`~django.db.models.Model.__str__` and forget about + :meth:`~django.db.models.Model.__unicode__`. + + If you're familiar with Python 2, you might be in the habit of adding :meth:`~django.db.models.Model.__str__` methods to your classes, not :meth:`~django.db.models.Model.__unicode__` methods. We use :meth:`~django.db.models.Model.__unicode__` here because Django models deal