Django: Фильтруйте записи AbstractUser с помощью SQL, показывайте только записи зарегистрированных пользователей
У меня есть AbstractUser. Я хочу ограничить показываемые им записи только своими собственными (показывать только записи вошедшего пользователя). Я бы очень хотел сделать это с помощью SQL-запроса, так как есть соседние таблицы, с которыми нужно работать.
Есть идеи?
models.py
class Teacher(AbstractUser):
profile = models.ManyToManyField(Profile, through='TeacherProfile')
unit = models.ManyToManyField(Unit, through='TeacherUnit')
mobile = models.CharField(max_length=16)
email = models.EmailField(max_length=100, unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'first_name', 'last_name']
def __str__(self):
return self.email
Для этого можно использовать декоратор django login_required.
from django.contrib.auth.decorators import login_required
@login_required
def myview(request):
pass
это защитит ваше представление от доступа к нему тех, кто не вошел в систему, и перенаправит их на страницу входа
И как вы сказали, чтобы получить информацию о текущем вошедшем пользователе, вы можете сделать это с помощью :
@login_required
def myview(request):
user = request.user
request.user
даст вам текущего вошедшего пользователя