我遇到一个错误,我真的不知道Django为什么以一种奇怪的方式做出反应。
如果我写:
from jezyk.models import Jezyk
from pytania.models import Pytanie
from userprofile.models import UserProfile
def test_qr(request):
# Create the HttpResponse object with the appropriate PDF headers.
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="egzamin.pdf"'
uzyt = UserProfile.objects.all().order_by('user_id')
jez = Jezyk.objects.all()
pytanie = Pytanie.objects.all().order_by('godzina')
p = canvas.Canvas(response)
for z, uzyt in enumerate(UserProfile.objects.order_by('godzina', 'jezyk_id')):
if jez.jezyk == 'EN' :
for i, pytanie in enumerate(Pytanie.objects.all()):
p.drawString(10, 400 + i*210, ' '+ pytanie.title)
我收到一个错误:
Exception Value: 'QuerySet' object has no attribute 'jezyk'
此错误来自这里:
if jez.jezyk == 'EN' :
我觉得很奇怪,因为此代码有效:
uzyt = UserProfile.objects.all().order_by('user_id')
为什么无法从表jezyk访问列jezyk?
在我的sqlite表jezyk中,我有2列:id和jezyk,如下所示:
最佳答案
jez
的值为QuerySet
并且queryset没有名为jezyk
的属性:
jez = Jezyk.objects.all()
据我了解,您想遍历所有用户配置文件并检查其语言设置。如果是这样,我认为您甚至不需要获取所有
Jezyk
对象,您可以改为执行以下操作:for z, uzyt in enumerate(UserProfile.objects.select_related('jezyk').order_by('godzina', 'jezyk_id')):
if uzyt.jezyk.jezyk == 'EN':
...
关于python - “QuerySet”对象没有属性。奇怪的情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28644374/