#django #django-models #django-views
#django #django-модели #django-просмотры
Вопрос:
users = User.objects.all()
post.author = users.name
Учитывая, что User
именно там информация о суперпользователе хранится в базе данных. Выдает ошибку в виде:
'Query Set' object has no attribute 'name'
Комментарии:
1.
users
является ли queryset неUser
объектом2. Имя какого суперпользователя вы хотите получить? Пользователь, делающий запрос, может быть доступен через
request.user
, хотя он может и не быть суперпользователем
Ответ №1:
from django.contrib.auth.models import User
superusers = User.objects.filter(is_superuser=True)
superuser_names = [user.username for user in superusers]
Ответ №2:
Если у вас есть представление о том, что суперпользователь вошел в систему, вы можете проверить имя пользователя с помощью:
if request.user.is_superuser:
name = request.user.username
else:
name = None
Ответ №3:
user = User.objects.all()
возвращает файл, queryset
содержащий всех пользователей в базе данных, поэтому вы не можете использовать .name
для него.
Насколько я понял вашу проблему, вам нужен username
of user
, поэтому вы должны использовать user.username
, если хотите использовать первое имя user.first_name
, это будет работать только с одним объектом, А НЕ с набором запросов. Вы можете, пользователь user.is_superuser
, определить, является ли пользователь суперпользователем или нет.
Это поможет -> Подробнее в документах