繁体   English   中英

django中的__str __()方法不可调用

[英]__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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM