2011-07-05 60 views
0

我得到'Pixel' object does not support item assignment如何將附加字典追加到我的model_list?

如何將附加字典追加到我的pixel_list對象?

def pixel_main(request, page): 
    y = int(page) * 10 
    x = y - 10 
    pixel_list = Pixel.objects.all()[x:y] 
    for i in pixel_list: 
     if Handler.objects.filter(pixel=i.id).filter(user=request.user): 
      i['vote'] = True 
     else: 
      i['vote'] = False 

    return render_to_response('pixel_main.html', {"pixels": pixel_list}, context_instance=RequestContext(request)) 
+1

爲什麼不直接使用屬性? –

+0

因爲我在任何類型的編程中都不是先進的。 – krzyhub

+0

...但是,當您編寫諸如'Pixel.objects'之類的東西時,您已經在使用(已經存在的)屬性。 :/ –

回答

2

的Python,您可以添加屬性使用點符號對象實例:

for i in pixel_list: 
    if Handler.objects.filter(pixel=i.id).filter(user=request.user): 
     i.vote = True 
    else: 
     i.vote = False 
+0

它的工作原理。 Dzięki:) – krzyhub

1

你可以添加一個BooleanField到像素級在models.py,如果vote應保存。

或者,您可以通過選票認爲在一個單獨的對象:

vote = defaultdict(bool) 
if Handler.objects.filter(pixel=i.id).filter(user=request.user): 
    vote[i] = True 
+0

vote = models.BooleanField()? – krzyhub

+0

@cris:是的,但請檢查我更新的答案,以獲得更優雅的解決方案。 –

+0

它看起來不錯。我想在實踐中檢查這一點,但我的服務今天非常緩慢:/ – krzyhub