我正在構建一個博客應用程式,我正在嘗試獲取Profile模型的所有布林值。我之前嘗試制作布林值串列,但后來它不符合要求。
模型.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)
視圖.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 Modelrequest.user 的所有布爾欄位
但我不知道,我該怎么做。
任何幫助將不勝感激。先感謝您
uj5u.com熱心網友回復:
您可以使用以下命令獲取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模型部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349993.html
標籤:Python 姜戈 django-models django-views django-queryset
上一篇:django錯誤:NoReverseMatchat/watchlist/Reversefor'viewList'witharguments'('',)
下一篇:序列化資料后回傳數字的名稱
