2017-04-05 5 views
0

次のコードをDjangoの私のモデルに書いています。 __str__()メソッドを使用しようとすると、メソッドが呼び出し可能でないというエラーが発生します。私が紛失しているものはありますか?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' 
+0

私は__str__メソッドを呼び出して取得するdjango.blog_posts.allを()を使用しています私が使用したときに、私は同じ結果を取得しています –

答えて

0

エラーは、それが文字列"{} on {}"が呼び出し可能ではないことを言っている、あなたの__str__方法はuncallableであることを伝えるされていません。

文字列の書式設定が正しくないため、Pythonが文字列を呼び出そうとしています。あなたは、次のいずれかを使用することができます。

"{} on {}".format(self.title, self.pub_date.strftime('%Y-%m_%d')) 


"%s on %s" % (self.title, self.pub_date.strftime('%Y-%m_%d')) 
+0

「『strの』オブジェクトが呼び出し可能ではありません」それらの形式のいずれか –

+0

上記の行は、エラーを起こすべきではありません。コードを変更した後にサーバーを再起動していないか、他の場所で同じような間違いがあります。 – Alasdair

関連する問題