Django sweetify
我已经阅读了有关的文档,但我不清楚,我已经下载并导入了Django中sweetify的要求。我只希望如果记录被更新,弹出消息(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
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>