Django使用request.user和按钮操作

Django使用request.user和按钮操作,django,listview,datatables,request,Django,Listview,Datatables,Request,说明: 我有一个表格,显示用户提交的信息,这些信息需要经理处理,因此我在每行末尾有一个按钮,上面写着“授权”,还有一条空白注释,名为“代码>授权人”,一旦按下按钮,经理将被重定向到一个表格,以忽略该信息,并可选择授权所述信息 问题: 然后如何传回要显示在列authorized\u by 列表视图/表格代码: model = Change template_name = 'users/change_requests/exemption_authorise.html' context_object_

说明:

我有一个表格,显示用户提交的信息,这些信息需要经理处理,因此我在每行末尾有一个按钮,上面写着“授权”,还有一条空白注释,名为“代码>授权人”,一旦按下按钮,经理将被重定向到一个表格,以忽略该信息,并可选择授权所述信息

问题:

然后如何传回要显示在列
authorized\u by

列表视图/表格代码:

model = Change
template_name = 'users/change_requests/exemption_authorise.html'
context_object_name = 'change'

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    self.queryset = self.get_filters(self.model.objects.all())
    context['requested_by'] = self.request.user
    if self.model.authorised_by == True:
        context['authorised_by'] = self.request.user
    else:
        context['authorised_by'] = ""
    context['auth'] = int(bool(int(self.request.GET.get("auth")))) if "auth" in self.request.GET.keys() else None
    context['count_of_records'] = self.queryset.count()
    return context
FormView代码:

model = Change
    template_name = 'users/change_requests/auth_request.html'
    form_class = AuthForm
    pk_url_kwarg = 'authorise_id'

    def check_authorised(self):
        if not getattr(self, 'authorise', None):
            self.authorise = Change.objects.get(pk=self.kwargs.get('authorise_id'))

        if self.authorise.authorised_by:
            messages.error("Sorry, this has already been authorised by {}".format(self.authorise.authorised_by.get_full_name()))

            return True
        return False

    def get(self, request, *args, **kwargs):
        if self.check_authorised():
            return redirect('users:change_request')

        return super().get(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        if self.check_authorised():
            return redirect('users:change_request')

        return super().post(request, *args, **kwargs)

    def get_initial(self):
        initial = super().get_initial()
        self.authorise = Change.objects.get(pk=self.kwargs.get('authorise_id'))
        initial.update({'request': self.authorise.request})
        self.initial = initial
        return initial

    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.authorised_by = self.request.user
        self.object.save()
        return super(AuthRequest, self).form_valid(form)

    def get_success_url(self):
        redirect_name = 'users:change_request'
        success_url = reverse_lazy(
            redirect_name,

        )

        return success_url
模板片段:

<thead>
  <tr>
    <th>#</th>
    <th>Name</th>
    <th>Request</th>
    <th>Notes</th>
    <th>Authorised By</th>
    <th>Authorisation</th>
  </tr>
</thead>
<tbody>
{% for req in change %}
  <tr>
    <td>{{ req.id }}</td>
    <td>{{ req.user.get_name }}</td>
    <td>{{ req.request }}</td>
    <td>{{ req.Notes }}</td>
    <td>{{ request.user }}</td>
{% endfor %}
  </tr>
</tbody>

#
名称
要求
笔记
授权人
授权
{更改中请求的百分比%}
{{req.id}
{{req.user.get_name}
{{req.request}
{{req.Notes}
{{request.user}
{%endfor%}

我的按钮没有显示在模板html中的原因是我在JSON数据视图中创建了它,我认为它与显示无关。

不确定您在问什么。您已经在
form\u valid
方法中设置了authorized\u by。是的,但这只是在我授权数据之前设置authorized\u by,而我需要在授权之前将其设置为空