# __unicode__ on Python 2
Django新手在这里,我试图搜索上述评论的含义,但无法找到相关信息。
在Django文档中,我在代码的许多部分找到了这个注释,这是否意味着本节仅在我使用Django和Python 2时才有意义?
我的意思是这样的功能
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)
答案 0 :(得分:1)
这意味着示例代码是用Python 3编写的,如果您正在编写Python 2应用程序,则应在类定义中将__unicode__
替换为overflow:auto
。
Python 2和3在很多方面都有所不同,特别是在如何处理unicode和字符串方面。