如何解决Django使用复选框小部件从视图运行python函数
我正在创建Django项目。我的数据库中有很多数据,并且正在通过表将其呈现到模板中。每列对应于数据库中的字段。除此之外,我的应用程序还允许用户对所选数据执行某些操作。我希望允许用户单击按钮即可运行这些操作(通过views
中的函数)。
很显然,让用户单击每一行的按钮很麻烦。因此,我认为最好让他们单击相应行的复选框,然后让他们单击按钮以从我的项目中运行特定功能。
请原谅我,但我不知道如何进行这种设置。我已经阅读了有关复选框小部件的内容,但是如果对复选框上的复选框进行了检查,那么如何对在HTML模板上呈现的一组对象运行函数。
感谢您的指导!
这是我所拥有的模板片段:
<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">ID</th>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Major</th>
<th scope="col">Promote</th>
</tr>
</thead>
<tbody>
{% for s in list %}
<tr>
<th scope="row">{{s.student_id}}</th>
<td>{{s.user.username}}</td>
<td>{{s.user.email}}</td>
<td>{{s.major}}</td>
<td><a type="button" class="btn btn-success" href="{% url 'emailPage' s.student_id%}">Make Tutor</a></td>
</tr>
</tbody>
</table>
尝试将每行按钮替换为一键单击系统。我从视图中传递了masterList。
models.py
class masterList(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name="student")
student_id = models.IntegerField(primary_key=True,null=False,validators=[MaxValueValidator(999999),MinValueValidator(100000)])
phone = PhoneField(blank=False,help_text='best number to contact you')
major = models.CharField(max_length=500,blank=False)
eof = models.BooleanField(blank=False,choices = [(True,'Yes'),(False,'No')])
arc = models.BooleanField(blank=False,'No')])
class Meta():
verbose_name = 'Student Info'
def __str__(self):
return self.user.username
解决方法
我绝不是专家,我见过人们通过实时重新加载以及视图外部的逻辑来做到这一点(我听来人们对此很鄙视),但这是我通常将其组合在一起的通用格式这样的事情:
@State var notes = ""
...
TextEditor(text: $notes)
.onChange(of: notes,perform: { newString in
print(newString)
})
这里的关键是按钮值由视图中的if语句拾取,当单击提交按钮时,该语句触发函数的动作。那是我朋友的魔力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。