2017-09-10 3 views
-2
# __unicode__ on Python 2 

Djangoの初心者ここではDjangoのドキュメントにはPython 2 'の#__unicode__ `の意味を説明することができますが、それについての情報を見つけることができませんでした。は誰かが、私は上記のこのコメントの意味を検索しようとしてい

Djangoのドキュメントでは、コードの多くの部分でこのコメントが見つかりましたが、このセクションはPython 2でDjangoを使用する場合、または別のことを意味しますか?

私は、この例のコードでは、この

def __str__(self):    # __unicode__ on Python 2 
      return "%s the place" % self.name 

のような機能を意味する:

from django.db import models 

class Place(models.Model): 
    name = models.CharField(max_length=50) 
    address = models.CharField(max_length=80) 

    def __str__(self):    # __unicode__ on Python 2 
     return "%s the place" % self.name 

class Restaurant(models.Model): 
    place = models.OneToOneField(
     Place, 
     on_delete=models.CASCADE, 
     primary_key=True, 
    ) 
    serves_hot_dogs = models.BooleanField(default=False) 
    serves_pizza = models.BooleanField(default=False) 

    def __str__(self):    # __unicode__ on Python 2 
     return "%s the restaurant" % self.place.name 

class Waiter(models.Model): 
    restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE) 
    name = models.CharField(max_length=50) 

    def __str__(self):    # __unicode__ on Python 2 
     return "%s the waiter at %s" % (self.name, self.restaurant) 

答えて

1

それは、サンプルコードはPython 3で書かれていることを意味し、あなたがPythonの2を作成している場合は、そのアプリケーションでは、__str____unicode__に置き換える必要があります。

Python 2と3は、多くの面で、特にユニコードと文字列の扱い方が異なります。

+0

イラストアレックスありがとう –

関連する問題