Получите все булевы значения модели соответствующим образом

Я создаю приложение для блога и пытаюсь получить все булевы модели 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 модель раздел документации .

Вернуться на верх