Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django sweetify_Django_Sweetalert_Sweetalert2 - Fatal编程技术网

Django sweetify

Django sweetify,django,sweetalert,sweetalert2,Django,Sweetalert,Sweetalert2,我已经阅读了有关的文档,但我不清楚,我已经下载并导入了Django中sweetify的要求。我只希望如果记录被更新,弹出消息(sweetify)会出现 def studentrecords(request): if request.method == 'POST': id = request.POST.get("id") update = StudentsEnrollmentRecord.objects.get(id=id) update.Section

我已经阅读了有关的文档,但我不清楚,我已经下载并导入了Django中sweetify的要求。我只希望如果记录被更新,弹出消息(sweetify)会出现

def studentrecords(request):
   if request.method == 'POST':
      id = request.POST.get("id")
      update = StudentsEnrollmentRecord.objects.get(id=id)
      update.Section = s
      update.save()
      sweetify.success(request, 'You did it', text='Your Form has been Updated',persistent='Hell yeah')
      return render(request, 'Homepage/selectrecord.html')
这是我的html

{% load sweetify %}
{% sweetify %}
 <form  method="post" action="/studentrecords/" enctype="multipart/form-data">{% csrf_token %}
<table>
    {% for student in myrecord %}
    <tr>
        <td>Control #</td>
        <td><input type="text" name="id" value="{{student.id}}"></td>
        <td><input type="submit"></td>
    </tr>
    <tr>
        <td>Name: </td>
        <td><input type="text" value="{{student.Student_Users.Firstname}} {{student.Student_Users.Lastname}} {{student.Student_Users.Middle_Initial}}"></td>
        <td>Course/Track</td>
        <td><input type="text" value="{{student.Courses}}"></td>
    </tr>
    <tr>
        <td>Education Level: </td>
        <td><input type="text" value="{{student.Education_Levels}}"></td>
        <td>Strand: </td>
        <td><input type="text" value="{{student.strands}}"></td>
    </tr>
    <tr>
        <td>Section: </td>
        <td>
            <select name="section">
                <option value="{{student.Section.id}}">{{student.Section}}</option>
                {% for sections in section %}
                <option value="{{sections.id}}">{{sections.Description}}</option>
                {% endfor %}
            </select>
        </td>
        <td>Payment Type: </td>
        <td><input type="text" value="{{student.Payment_Type}}" class="myform"></td>
    </tr>
    {% endfor %}
</table>
 </form>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
<script>
    Swal.fire(
  'Good job!',
   'Data Updated!',
  'success'
)
</script>

我没有收到任何错误,但是没有弹出消息出现。(sweetify)

首先,如果您想获得任何记录更新的通知,我建议使用信号,而不是检测请求方法。这是一种更加集中和强大的解决方案。只需将此添加到您的
模型.py

from django.db.models.signals import post_save

@receiver(models.signals.post_save, sender=StudentsEnrollmentRecord)
def update_enrollment_record_handler(sender, updated_instance, **kwargs):
    """This method is called after every call of StudentsEnrollmentRecord.save"""
    sweetify.success(request, 'You did it', text='Your Form has been Updated',persistent='Hell yeah')
第二个-POST意味着通过RestAPI创建一个对象,您应该切换到UPDATE(包括所有对象字段)或PUT(更新一些对象字段)


第三,在sweetify行上方添加打印语句时会发生什么情况?那张照片印出来了吗?如果没有,那么您的整个设置甚至不会调用
studentrecords
方法,您需要共享更多信息,以便我们可以复制情况和/或进一步提供建议。

我认为您可能只需要在页面顶部的CDN上加载脚本。查看库,似乎模板标记
{%sweetify%}
只是加载了一些类似的内容:

<script>
    Swal.fire(...)
</script>

游泳池火灾(…)

因此,如果尚未加载sweet alerts脚本,
Swal
将只是未定义。您可以通过打开开发工具来确认这是否是问题所在,并且在控制台中您将看到类似“undefined has no property fire”之类的消息。我很好奇,页面底部的
Swal.fire
是否有效?

我绝对不建议在模型级别这样做。用户通知供用户查看,许多模型保存与用户无关。此外,这还影响了关注点的分离,因为sweetalert只是一个前端小部件,不需要处于数据级别。您可以这样说:“我只希望如果记录被更新,弹出消息(sweetify)会出现。”。然后你能重新措辞这个问题吗?你不是在说StudentsEnrollmentRecord模型吗?我是在说StudentsEnrollmentRecord模型,但不是在管理站点上,所以如果你想在模型级别上做一些事情,你应该在模型级别上做。@JuraBrazdil在两行之间读到:“但不是在管理站点上”。如果您将此绑定到post_保存,那么对于一个,您没有请求对象;对于两个,当您通过数据迁移进行更新时,这将发生在管理站点中—除了批量更新之外,任何地方都会发生。相信我,你不会想要的。由于缺少文档,应用程序也不包含所需的javascript文件,因此假设你在模板中包含了SweetAlert javascript库。你的例子中没有。你是否在基本模板中包含了必要的代码?我更新了问题。我将脚本发布到我的html中
<script>
    Swal.fire(...)
</script>