首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DetailView +输入按钮

DetailView +输入按钮
EN

Stack Overflow用户
提问于 2021-08-01 18:27:50
回答 1查看 82关注 0票数 0

我想添加一个按钮,以“验证”用户的下一步注册。

工作人员必须在“用户详细信息”页面中“验证”用户。

因此,我创建了一个带有模板的DetailView视图,其中包含了这个用户的所有细节。但是我想知道是否可以用DetailView函数编写代码,允许用户在单击“验证”时增加step_registration变量?

下面是我的DetailView函数:

views.py

代码语言:javascript
复制
class StudentDetailView(DetailView, LoginRequiredMixin):
    model = Student
    login_url = login

student_detail.html

代码语言:javascript
复制
{% block content %}
  <h1>Etudiant: {{ student.user.firstname }} {{ student.user.firstname }}</h1>
  <ul>
    {% if student.photo %}
      <li> Photo :<img src="{{ student.photo.url }}", width = 250, height = 300>"> </li>
    {% endif %}
    <li> Etat de l'inscription : {{ student.step_registration }}</li>
    <li> Date de naissance : {{ student.birthdate }} </li>

  </ul>
<button class="btn btn-secondary"> Validate ! </button>

{% endblock %}

步骤注册变量称为"step_registration",因此当工作人员单击“验证”时,我希望执行student.step_registration += 1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 23:26:26

若要使按钮仅对工作人员可见(还可以添加逻辑以仅在特定步骤显示该按钮):

代码语言:javascript
复制
{% if user.is_staff %}
<button class="btn btn-secondary" href="/validate_student/student.id"> Validate ! </button>
{% endif %}

添加视图并将其链接到urls.py中(您可以添加一些逻辑/检查或将步骤设置为某个值):

代码语言:javascript
复制
from django.contrib.admin.views.decorators import staff_member_required

@staff_member_required
def validate_student(request, id):
  student = Student.objects.get(id)
  student.registration_step += 1
  student.save()
  return ... # redirect or success page
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68613267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档