首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击html中的按钮并使用DetailView (Django)使用户处于活动状态

点击html中的按钮并使用DetailView (Django)使用户处于活动状态
EN

Stack Overflow用户
提问于 2021-09-27 07:01:55
回答 1查看 56关注 0票数 0

当我点击一个按钮时,我试图让一个用户活动,我使用的是一个DetailView。

views.py

代码语言:javascript
复制
from .models import Model
from django.contrib.auth.models import User
from django.shortcuts import redirect


class UserInspectView(DetailView):
    model = Model
    template_name = 'user-inspect.html'




# Make the user is_active = True
def accept (request, pk):
    user = User.objects.get(id=pk)
    user.is_active
    return redirect('home')

...

urls.py

代码语言:javascript
复制
from django.urls import path
from . import views

urlpatterns = [
    path('inspect/<slug:slug>/', views.UserInspectView.as_view(), name='user-inspect'),
    path('inspect/<int:pk>/accept/', views.accept, name="user-accept"),
    ...
]

user-inspect.html

代码语言:javascript
复制
{% extends 'base.html' %}

{% block title %} <title>User Inspection</title> {% endblock %}

{% block content %}
<div class="d-flex justify-content-center">
    <div class="container d-flex flex-column">
        <div class="ms-5 ps-5" >
            <h3><strong>User:</strong> {{model.user}}</h3>
            <br>
            <h3><strong>Name:</strong> {{model.name}}</h3>
        </div>
       
    </div>
</div>
<br><br><br>
<div class="d-flex justify-content-center">
    <div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
        
        <div class="btn-group me-2 me-5 pe-5" role="group" aria-label="First group">
            <form method="post" action="{% url 'user-accept' model.user.pk %}">
                {% csrf_token %}
                <button type="submit" class="btn btn-primary">Accept</button>
            </form>
        </div>
        

        <div class="btn-group me-2 me-5 ps-5" role="group" aria-label="First group">
            <a href="" type="button" class="btn btn-secondary">Back</a>
        </div>
        
    </div>
</div>




{% endblock %}

models.py

代码语言:javascript
复制
from django.db import models
from django.contrib.auth.models import User


    class Model(models.Model):
        name = models.CharField(max_length=100)
        user = models.ForeignKey(User, on_delete=models.CASCADE)
        slug = models.SlugField(unique=True, blank=False, null=False)

在我的接受视图之前是这样的

代码语言:javascript
复制
def accept (request, pk):
    user = User.objects.get(id=pk)
    user.is_active()
    user.save()
    return redirect('home')

但是我改变了它,因为我有这个错误

TypeError在检查/30/验收/

“‘bool”对象不可调用

当我点击“接受”按钮时,它会把我带到“接受”视图中的重定向,但是用户仍然是不活动的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-27 07:03:36

user.is_active是布尔函数,而不是函数。

代码语言:javascript
复制
def accept (request, pk):
    user = User.objects.get(id=pk)
    user.is_active = True
    user.save()
    return redirect('home')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69342431

复制
相关文章

相似问题

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