Django消息成功消息以及来自提交表单的数据

时间:2018-07-25 23:28:09

标签: django django-messages

我已经启动并运行了消息;我可以获得一条简单的“提交成功”消息,因此我知道context_processors和中间件均已正确配置。但是,我正在尝试使用表单中提交的数据动态更新成功消息。

这是我的views.py

from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from menu.models import Book
from .forms import AddBook
from nextbook.models import Book
from django.contrib import messages
from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic.edit import CreateView


def library(request):
    form = AddBook(request.POST or None)
    success = False
    if request.method == 'POST':
        if form.is_valid():
            addedbook = form.save(commit=False)
            addedbook.save()
            form = AddBook()
            success = True
            messages.success(request, 'Book addition successful')


    return render(request, 'newbook/index.html', {'form': form})


class BookAddConf(SuccessMessageMixin, CreateView):
    model = Book
    success_message = "%(new_title)s by %(new_author)s was added to your library"

    def get_success_message(self, cleaned_data):
        return self.success_message % dict(
            cleaned_data,
            new_title=self.object.title,
            new_author=self.object.author
        )

我试图让success_message在用户提交表单时显示,并使用他们输入的数据填充消息。我在这里已经阅读了许多答案,但是似乎找不到正确的信息来连接最后一个点。

这是我的模板:

{% if messages %}
  <ul class="messages">
      {% for message in messages %}
      <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
      {% endfor %}
  </ul>
  {% endif %}

我知道我缺少什么,但是我不确定。

0 个答案:

没有答案