0

我正在尝试创建一个搜索表单,管理员可以在其中搜索用户,然后停用他们的个人资料,如果它是正确的帐户。

尝试了基于函数的视图,然后尝试了基于类的视图。它在基于功能的视图中显示配置文件,但不更新它。在基于类的视图中,它甚至不会显示配置文件。

模型.py

class User(AbstractBaseUser):
    objects = UserManager()
    email = models.EmailField(verbose_name='email address', max_length=255, unique=True,)
    type = models.CharField(max_length = 50, choices = type_choices)
    name = models.CharField(max_length = 100)
    department = models.CharField(max_length = 100, null = True, blank = True, choices = department_choices)
    active = models.BooleanField(default=True)
    staff = models.BooleanField(default=False) # a superuser
    admin = models.BooleanField(default=False)


    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['type']

表格.py

class SearchForm(forms.Form):
    email = forms.EmailField(required=True)

视图.py

@method_decorator(login_required, name='dispatch')
class adminDeleteProfileView(LoginRequiredMixin, View):
    def render(self, request):
        return render(request, 'admin/view_account.html', {'form': self.form})

    def form_valid(self, form):
        self.form = SearchForm(request.POST)
        print('im here', form.cleaned_data.get('email'))
        User.objects.filter(email = form.cleaned_data.get('email')).update(active = False)
        #print('Donot come here')

    def get(self, request):
        self.form = SearchForm()
        return self.render(request)

@login_required
def admin_deactivate_profile_view(request):
    error_text = ''
    if request.method == 'POST':
        print('here')
        user_email = request.POST.get('email')

        try:
            print('Deactivating',user_email, 'Account.')
            profile = User.objects.filter(email = user_email).first()

            if request.POST.get('delete'):
                User.objects.filter(email = user_email).update(active = False)
                messages.success(self.request, 'Profile Updated!')
        except Exception as e:
           print(e)
           messages.success(self.request, 'There was an error!')

    return render(request, "admin/delete_profile.html", {'profile':profile})
4

1 回答 1

0

简单查询。

user=User.objects.get(email="user@email.com")
user.activate=false
user.save()
于 2019-06-09T12:50:55.973 回答