0

私が実装したいのは次のようなものです:

from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic import CreateView

from posts.models import Post


class PostNewView(LoginRequiredMixin, SuccessMessageMixin, CreateView):

    model = Post
    fields = ['title', 'content', 'image']
    success_message = "{} has been created successfully".format(self.post.title) 

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)

しかし、エラーが発生します。何か案は?

4

1 に答える 1

4

これは では問題でformat()はありませんが、その時点で存在しない属性を参照しようとすると発生します。クラス レベルの属性はインポート時に評価されself.titleますが、実行時にのみ存在し、メソッド内にのみ存在します。

そのレベルでメッセージを設定するのではなく、次のget_success_messageメソッドを使用する必要があります。

def get_success_message(self, cleaned_data):
    return "{} has been created successfully".format(cleaned_data['title'])
于 2016-08-22T07:58:49.810 に答える