2015-05-13 49 views
0

我正試圖從我的模型Reading中檢索字段reading中的最新插入對象。如何返回在Django中插入的最新對象?

我想是這樣的:

@csrf_exempt 
def get_config(request): 
    if request.method == 'POST': 
     reading = Reading.objects.latest('reading') 
     print reading 
     #reading = 10  

     return HttpResponse(json.dumps(str(reading)), content_type="application/json") 
    return render(request, 'web/home.html') 

這是我的模型:

from django.db import models 
... 
class Reading(models.Model): 
    resource = models.ForeignKey(Resource) 
    reading = models.IntegerField() 
    date = models.DateTimeField('date', auto_now_add=True) 

    def __unicode__(self): 
     return u'%s | %s' % (self.resource.urn, self.reading) 

的問題是,我得到了回報__unicode__不管什麼要問的我我的views將被退回。

任何想法或建議嗎?

+0

但是你的視圖*是*要求'__unicode__'。它明確地調用對象上的「str」。 –

+0

Hi @DanielRoseman,我是python + django的新手。你能解釋一下嗎? –

+2

'reading'是對象,你在調用'str',它使用代碼將它轉換爲一個字符串,這是'__unicode__'方法。如果你不想要對象的字符串表示,不要調用'str'。 –

回答

1

如果你想輸出實例的字段值則此字段傳遞給dumps()而不是整個對象:

json.dumps(str(reading.reading)) 

您也可以省略str()電話,如果你想返回一個數字,而不是的字符串:

json.dumps(reading.reading) 
+0

謝謝@cataravan,我的錯誤是,我認爲'reading = Reading.objects.latest('reading')'會返回一個值而不是對象。謝謝! –

相關問題