前言
最近学django,看到不少教程里面models.py里面建表,写一个类的时候,习惯上加个__str__ ,开始不太明白,简单的实践后才知道是为了美化类实例的打印内容。
python3 里面用__str__ ,python2里面用__unicode__
写个类在 models.py
中添加
class ComputerRoom(models.Model): name = models.CharField(max_length=256,verbose_name = "名称") abbr = models.CharField(max_length=128, blank=True, null=True,verbose_name = "缩写") type = models.CharField(max_length=256) exist_buyout = models.IntegerField(blank=True, null=True) cmd_buyout = models.CharField(max_length=256, blank=True, null=True) exist_95 = models.IntegerField(blank=True, null=True) cmd_95 = models.CharField(max_length=256, blank=True, null=True) maximum = models.IntegerField(blank=True, null=True) lower_limit = models.IntegerField(blank=True, null=True) upper_limit = models.IntegerField(blank=True, null=True) weights = models.IntegerField(blank=True, null=True) host = models.CharField(max_length=256, blank=True, null=True) username = models.CharField(max_length=256, blank=True, null=True) password = models.CharField(max_length=256, blank=True, null=True) port = models.IntegerField(blank=True, null=True) maximum_95 = models.BigIntegerField(blank=True, null=True) lower_limit_95 = models.BigIntegerField(blank=True, null=True) upper_limit_95 = models.BigIntegerField(blank=True, null=True) update_time = models.DateTimeField(auto_now=True) # def __unicode__(self): # return self.name def __str__(self): return self.name class Meta: managed = False db_table = 'computer_room' verbose_name_plural = "机房管理"
这里如果我们使用 __unicode__
,在列表中可以正常显示,但是在 添加/修改 页面显示 Object 对象了。
如果使用 __str__
,则显示正常了。
评论已关闭