Python 将上下文数据呈现到generic.DetailView

Python 将上下文数据呈现到generic.DetailView,python,django,detailview,Python,Django,Detailview,如何渲染数据或将上下文数据重定向到generic.DetailView。 我有模型笔记 class Note(models.Model): key = models.CharField(max_length=50, primary_key=True) text = models.TextField() 我的观点是 class ShowNote(generic.DetailView): model = Note template_name = 'notes/sho

如何渲染数据或将上下文数据重定向到generic.DetailView。 我有模型笔记

class Note(models.Model):
    key = models.CharField(max_length=50, primary_key=True)
    text = models.TextField()
我的观点是

class ShowNote(generic.DetailView):
    model = Note
    template_name = 'notes/show_note.html'

    def get(self, request, *args, **kwargs):
        try:
            self.object = self.get_object()
        except Http404:
            # redirect here
            return render(request, 'notes/index.html', {'error': 'Note doesnt exist', })
        context = self.get_context_data(object=self.object)
        return self.render_to_response(context)
url(r'^show/(?p.*)/$,views.ShowNote.as_view(),name='show_note'),

页面显示注释的键及其文本,还有一个按钮,如果文本被更改,该按钮可保存文本

def save_note(request):
    key = request.POST['key']
    selected_note = Note.objects.get(pk=key)
    selected_note.text = request.POST['text']
    selected_note.save()
    //back to show_note

如何在“notes/show_note.html”中呈现数据
{'message':'note was saved successfully'}
,但使用相同的主键

您可以为此重写
get_context_data
方法。将下面的方法放在基于类的视图中

def get_context_data(self, **kwargs):
    data = super().get_context_data(**kwargs)
    data['message'] = 'note was saved successfully'
    return data
然后在模板中

{{ message }}
在这里会有很大的帮助

另一种方法是使用
django.contrib.messages
中的messages模块

您可以在代码中使用如下内容

def get(self, request, *args, **kwargs):
.... # your code    
    messages.success(request, "Note was added successfully")
然后在模板中

{% for message in messages%}
    {{ message }}
{% endfor %}

您可以为此重写
get\u context\u data
方法。将下面的方法放在基于类的视图中

def get_context_data(self, **kwargs):
    data = super().get_context_data(**kwargs)
    data['message'] = 'note was saved successfully'
    return data
然后在模板中

{{ message }}
在这里会有很大的帮助

另一种方法是使用
django.contrib.messages
中的messages模块

您可以在代码中使用如下内容

def get(self, request, *args, **kwargs):
.... # your code    
    messages.success(request, "Note was added successfully")
然后在模板中

{% for message in messages%}
    {{ message }}
{% endfor %}

您是否查看了
django.contrib.messages
模块?@wmorrell否,但我会看到它。您是否查看了
django.contrib.messages
模块?@wmorrell否,但我会看到它。