[英]__str__() method in django not callable
我在Django模型中编写了以下代码。 当我尝试使用__str__()
方法时,出现错误,表明该方法不可调用。 我有什么想念的吗?
from django.db import models
from organizer.models import Startup, Tag
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=63)
slug = models.SlugField(
max_length=63,
help_text='A label for URL config',
unique_for_month='pub_date')
text = models.TextField()
pub_date = models.DateField('date published',
auto_now_add=True)
tags = models.ManyToManyField(
Tag, related_name='blog_posts')
startups = models.ManyToManyField(
Startup, related_name='blog_posts')
def __str__(self):
return "{} on {}" (self.title, self.pub_date.strftime('%Y-%m_%d'))
class Meta:
verbose_name = 'blog post'
ordering = ['-pub_date', 'title']
get_latest_by = 'pub_date'
错误不是在告诉您__str__
方法是不可调用的,而是在告诉您字符串"{} on {}"
是不可调用的。
Python正在尝试调用字符串,因为您对字符串格式进行的尝试不正确。 您可以使用以下任一方法:
"{} on {}".format(self.title, self.pub_date.strftime('%Y-%m_%d'))
"%s on %s" % (self.title, self.pub_date.strftime('%Y-%m_%d'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.