最近、モデル「ニュース」に新しいメソッドを追加しました。
def slug(self):
return slugify(self.title)
しかし、どこからでも呼べないようです。nというニュースオブジェクトがあると想像してください。電話をかけようとするとき
n.slug()
私はいつも次のようなエラーが発生します:
AttributeError: 'News' object has no attribute 'slug'
私はDjangoとPythonの完全な初心者であり、これは私の側のばかげた間違いだと確信しています。ちなみに、メソッドを追加した後、開発サーバーを再起動してデータベースを同期しようとしましたが、どちらも変更はありません。私は以前にこのようなモデルメソッドを問題なく使用したことに注意してください:S
編集:
モデルは次のとおりです。
from django.template.defaultfilters import slugify
class News(models.Model):
title = models.CharField(max_length=100)
[...]
def slug(self):
return slugify(self.title)
これは、メソッドの呼び出し方法に関するサンプルコードです。最初にテンプレートで呼び出しようとしましたが、機能しませんでした。次に、ビューを変更して、スラッグを返すだけにしましたが、エラーは残ります。シェルで試してみると同じです。
from fbki.models import News
def news_detail(request, slug, news_id):
news = News.objects.get(id = news_id)
return HttpResponse(news.slug())