Для добавления пользователя в черный список в Django, вы можете использовать модель и представление. Давайте разберемся, как это сделать более подробно.
1. Создайте модель для черного списка пользователей:
from django.db import models from django.contrib.auth.models import User class Blacklist(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) reason = models.CharField(max_length=255) timestamp = models.DateTimeField(auto_now_add=True)
В этом примере мы создаем модель Blacklist
со связью OneToOne к модели User
из django.contrib.auth.models
. Модель Blacklist
также имеет дополнительные поля, такие как reason
(причина добавления пользователя в черный список) и timestamp
(дата и время добавления пользователя).
2. Создайте форму для добавления пользователя в черный список:
from django import forms from django.contrib.auth.models import User class BlacklistForm(forms.Form): user = forms.ModelChoiceField(queryset=User.objects.all()) reason = forms.CharField(max_length=255)
В этом примере мы создаем простую форму BlacklistForm
с полем user
, которое является выбором модели User
, и полем reason
, которое является текстовым полем для ввода причины.
3. Создайте представление для добавления пользователя в черный список:
from django.shortcuts import render, redirect from .models import Blacklist from .forms import BlacklistForm def add_to_blacklist(request): if request.method == 'POST': form = BlacklistForm(request.POST) if form.is_valid(): user = form.cleaned_data['user'] reason = form.cleaned_data['reason'] blacklist = Blacklist(user=user, reason=reason) blacklist.save() return redirect('success_page') # замените 'success_page' на URL вашей страницы успеха else: form = BlacklistForm() return render(request, 'add_to_blacklist.html', {'form': form})
В этом примере мы создаем представление add_to_blacklist
, которое обрабатывает запросы POST и GET. Если запрос является POST-запросом, мы проверяем, является ли форма BlacklistForm
валидной. Если форма действительна, мы получаем пользователя и причину из формы и создаем объект Blacklist
. Затем выполняется редирект на страницу успеха. Если запрос является GET-запросом, мы просто отображаем пустую форму.
4. Создайте шаблон для отображения формы добавления пользователя в черный список:
<!-- add_to_blacklist.html --> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Добавить в черный список</button> </form>
В этом примере мы используем шаблон Django для отображения формы BlacklistForm
. Мы также включаем метку CSRF-токена для обеспечения безопасности.
Теперь, если вы создадите URL-маршрут для представления add_to_blacklist
и откроете его веб-страницу, вы увидите форму для добавления пользователя в черный список. После отправки формы пользователь будет добавлен в черный список и вы будете перенаправлены на страницу успеха.
Обратите внимание, что это только пример реализации черного списка пользователей в Django. Вам может потребоваться внести изменения или расширить его в соответствии со специфическими требованиями вашего проекта.