2017-12-23 9 views
0

私はテンプレートの写真のリストのURLを渡そうとしています。すべての写真の名前にMEDIA_URLを連結しています。Python/Django - 値がループの後に戻ってきています

print(a)を実行すると、コンソールに連結が正常に追加されたことがわかります。結果はmedia/photo.jpgのようなものです。しかし、ループが終了するまでに、連結結果がない場合と同じように、結果は元のphoto.jpgに戻ります。 print(photos)に変更のない写真のリストが表示されます。

なぜですか?

def get_property_data(request): 
    property_id = request.GET.get('id') 
    photos = ListingPhoto.objects.values_list('photo', flat=True).filter(listing__id=property_id) 
    for a in photos: 
     a = settings.MEDIA_URL + a 
     print(a) 
    print(photos) 

    return JsonResponse({'property': list(photos)}) 
+2

のようなものを試してみてください。したがって、 'a'を変更してもiterable' photos'の値は変更されません。たぶん、あなたがしたい: '私の範囲(len(photos)):photos [i] + = settings.MEDIA_URL'。 – Abdou

答えて

1

変更されていない写真を出力しています。また、にループしており、を繰り返して値を繰り返し変更しています。

はphotos`中のため、 `A`はphotos``内の要素のコピーである `では、この代わりに

b = [] 
for a in photos: 
     b.append(settings.MEDIA_URL + a) 
     print(a) 
print(b) # b is an array of url strings