【问题标题】:Show message with Ajax in modal window在模式窗口中使用 Ajax 显示消息
【发布时间】:2023-03-26 07:08:01
【问题描述】:

我的 Django 项目没有什么问题。我的项目有模式窗口,用户可以在其中创建新对象。该模式窗口中只有一个字段(名称)。我也使用 AJAX。我正在尝试检查相同的对象是否已经存在并在该模式中显示消息。您可以看到我尝试使用的代码,但不幸的是我没有看到任何消息。如何在 Ajax 中发送消息?

views.py

def function_add(request, project_code):
    data = dict()
    project = get_object_or_404(Project, pk=project_code)
    if request.method == 'POST':
        form = FunctionAddForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            if Function.objects.filter(name=name, project=project_code).exists():
                messages.warning(request, 'Already exist.')
            else:
                function = form.save(commit=False)
                function.project = project
                function.save()
            data['form_is_valid'] = True
            functions = Function.objects.filter(project=project_code)
            data['html_function'] = render_to_string('project/function_list.html', {'functions': functions})
        else:
            data['form_is_valid'] = False
    else:
        form = FunctionAddForm()
    context = {'project': project, 'form': form}
    data['html_function_add_form'] = render_to_string('project/function_add.html', context, request=request)
    return JsonResponse(data)

function_add.html

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

【问题讨论】:

标签: jquery python ajax django django-views


【解决方案1】:

最后在官方文档中我找到了form.add_errorClick this link.

if form.is_valid():
   name = form.cleaned_data['name']
       if Function.objects.filter(name=name, project=project_code).exists():
           form.add_error('name', 'Already exist')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2010-10-08
    • 2015-05-14
    • 2019-01-15
    相关资源
    最近更新 更多