我遇到一个错误,我真的不知道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/

10-11 08:06