#Django - у объекта 'list' нет атрибута 'id' - PullRequest
0 голосов
/ 23 октября 2019

У меня есть этот код,

def delivery_date(request):
    today = datetime.today().date()
    results = [get(today)]
    stages = Stage.objects.prefetch_related('Stage').all()

    for i in range(3):
        results.append(get(results[i]))

    results = [{'date': i} for i in results]
    stages = [{'menu': s} for s in stages]
    for i in results:
        for stage in stages:
            stage['id'] = stage['menu'].id
            stage['name'] = stage['menu'].name
            stage['desc'] = stage['menu'].desc
            stage['menu'] = stage['menu'].Stage.filter(
                delivery_date__exact=i['date'])
            stage['menu'] = serializers.serialize('python', stage['menu'])

        i['menu'] = stages
        i['date'] = i['date'].strftime('%b %-d')

    return JsonResponse(results, safe=False)

Но результаты говорят: это изображение
Но если у результатов есть только одна дата, это работает.
Вот так

def delivery_date(request):
    today = datetime.today().date()
    results = [get(today)]
    stages = Stage.objects.prefetch_related('Stage').all()

    # for i in range(3):
        # results.append(get(results[i]))

    results = [{'date': i} for i in results]
    stages = [{'menu': s} for s in stages]
    for i in results:
        for stage in stages:
            stage['id'] = stage['menu'].id
            stage['name'] = stage['menu'].name
            stage['desc'] = stage['menu'].desc
            stage['menu'] = stage['menu'].Stage.filter(
                delivery_date__exact=i['date'])
            stage['menu'] = serializers.serialize('python', stage['menu'])

        i['menu'] = stages
        i['date'] = i['date'].strftime('%b %-d')

    return JsonResponse(results, safe=False)

Результаты

[
    {
        "date" : Oct 25,
        "menu" : [
             {
                "menu" : [
                     {
                        "model" : backend.product,
                        "pk" : 13,
                        "fields" : {
                                        "name" : Tasty Tempeh,
                                        "desc" : Nasi, Ayam, Wortel, Buncis, Bawang Merah, Bawang Putih, Daun Salam, Serai, Minyak Wijen, Minyak Kelapa Sawit.,
                                        "desc_detail" : ,
                                        "delivery_date" : 2019-10-25,
                                        "avatar" : ,
                                        "stage" : 1
                                   }
                      }
                  ],
                  "id" : 1,
                  "name" : Porridge,
                  "desc" : 
             }
    }
]

Что не так с моей логикой? Может кто-нибудь поможет?

1 Ответ

0 голосов
/ 23 октября 2019

просто вы пропустили, что меню - это Dict, список которого имеет значение, скажем, temp, а временный файл имеет dict со своими 0 индексами:

используйте следующее:

stage['menu'][0]['id']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...