Python 将上下文数据呈现到generic.DetailView
如何渲染数据或将上下文数据重定向到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
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否,但我会看到它。