簡體   English   中英

在 html 中點擊按鈕並使用 DetailView (Django) 時使用戶處於活動狀態

[英]Making the user active when tapping a button in html, and using a DetailView (Django)

當我點擊一個按鈕時,我試圖讓用戶處於活動狀態,並且我正在使用 DetailView。

視圖.py

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')

...

網址.py

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"),
    ...
]

用戶檢查.html

{% 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 %}

模型.py

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)

在我接受視圖之前看起來像這樣

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

但我改變了它,因為我得到了這個錯誤

inspect/30/accept/ 類型錯誤

'bool' object 不可調用

當我點擊接受按鈕時,它會將我帶到接受視圖中的重定向,但用戶仍然處於非活動狀態。

user.is_active是 boolean 而不是 function。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM