Необходимо выполнить поиск пользователя по электронной почте, а затем деактивировать его профиль. - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь создать форму поиска, где администратор может искать пользователей, а затем деактивировать их профили, если это правильный аккаунт.

пробные представления на основе функций, а затем представления на основе классов. Он показывает профиль в функциональных представлениях, но не обновляет его. и в представлении на основе классов он даже не будет отображать профиль.

models.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']

forms.py

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

views.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})

1 Ответ

0 голосов
/ 09 июня 2019

простой запрос.

user=User.objects.get(email="user@email.com")
user.activate=false
user.save()
...