Получите все булевы значения модели соответствующим образом
Я создаю приложение для блога и пытаюсь получить все булевы модели Profile
. Я уже пытался создать список булевых функций, но тогда он не соответствовал требованиям.
models.py
class Profile (models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, unique=True)
name = models.CharField(max_length=30)
first_boolean = models.BooleanField(default=False)
second_boolean = models.BooleanField(default=False)
third_boolean = models.BooleanField(default=False)
views.py
def page(request):
All_Booleans = Profile.objects.filter()
context = {'Booleans_List'}
return render(request, 'page.html', context)
Я также пробовал F из from django.db.models import F
как :-
All_Booleans = Profile.objects.filter(F(first_boolean=request.user) | F(second_boolean=request.user))
Но он показывает __init__() got an unexpected keyword argument 'first_boolean'
Что я пытаюсь сделать? :-
Я пытаюсь получить все булевы поля Profile Model
из request.user
Но я понятия не имею, как я могу это сделать.
Любая помощь будет очень признательна. Заранее спасибо
Вы можете получить Profile
для вошедшего пользователя с помощью:
from django.contrib.auth.decorators import login_required
@login_required
def page(request):
profile = Profile.objects.get(user=request.user)
return render(request, 'page.html', {'profile': profile})
В шаблоне вы можете затем отобразить булевы поля этого profile
с помощью:
one: {{ profile.first_boolean }}
two: {{ profile.second_boolean }}
three: {{ profile.third_boolean }}
Вы можете добавить булевы в список и использовать их в шаблоне также с помощью:
@login_required
def page(request):
profile = Profile.objects.get(user=request.user)
data = [profile.first_boolean, profile.second_boolean, profile.third_boolean]
return render(request, 'page.html', {'profile': profile, 'data': data})
тогда вы можете, например, отобразить это следующим образом:
{% for item in data %}
{{ item }}
{% endfor %}
Примечание: Вы можете ограничить представления для аутентифицированных пользователей с помощью декоратора
@login_required
декоратора [Django-doc].
Примечание: Обычно лучше использовать
settings.AUTH_USER_MODEL
[Django-doc] для ссылки на модель пользователя, чем использоватьUser
модель [Django-doc] напрямую. Для получения дополнительной информации вы можете посмотреть ссылка наUser
модель раздел документации .