“QuerySet”对象没有属性。奇怪的情况

2024-06-09 00:22:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个错误,我真的不知道为什么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) 

我得到一个错误:

^{pr2}$

此错误来自于:

    if jez.jezyk ==  'EN' :

我觉得很奇怪,因为这段代码很有用:

    uzyt = UserProfile.objects.all().order_by('user_id')

为什么不能从表jezyk访问列jezyk?在

jezyi和jezyk中的jezyi列如下:

enter image description here


Tags: fromimportidbyobjectsmodelsresponse错误
2条回答

您没有对代码进行完整的回溯,但有一个错误很明显:jez不是一个简单的模型对象,而是一个包含所有SQL结果的QuerySet,因此

jez = Jezyk.objects.all()
if jez.jezyk == 'EN':  # <- this fails here.

也许您想知道用户的语言:uzyt.jezyk.jezyk,并将其与'EN':uzyt.jezyk.jezyk == 'EN'进行比较?在

jez的值是QuerySet,queryset没有名为jezyk的属性:

jez = Jezyk.objects.all()

据我所知,您需要遍历所有用户配置文件并检查其语言设置。如果是这样的话,我认为您甚至不需要获取所有Jezyk对象,您可以改为执行以下操作

^{pr2}$

相关问题 更多 >