2014-09-02 39 views
0

我只想返回clandpin字段。下面我有這種模式:只返回JSON數據中的一個字段

model.py

class ButuanMaps(gismodel.Model): 
class Meta: 
    verbose_name = u'Butuan Map' 
    verbose_name_plural = u'Butuan Maps' 

clandpin = gismodel.CharField("Land PIN", max_length=50, null=True, blank=True) 
ssectionid = gismodel.ForeignKey(Section) 
#ssectionid_id = gismodel.IntegerField() 
geom = gismodel.MultiPolygonField("Geom ID", srid=32651, null=True, blank=True) 
objects = gismodel.GeoManager() 

def __unicode__(self): 
    return self.clandpin 

在我的模板,下面是AJAX代碼:

 <script type="text/javascript"> 
$(document).ready(function() { 
    $("#formsection").change(function() { 
     $.ajax({ 
      url : "/sectionpins", 
      type : "GET", 
      dataType: "html", 
      data : { 
       'sectionid' : $('#formsection').val(), 
       'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val() 
      }, 
      success : searchSuccess, 
      error: errs 
     }); 
    return false; 
    }); 
}); 
function searchSuccess(data){ 
    alert("Success"); 
    $('#forminput').append(
      "<option value='"+data+"'>"+data+"</option>" 
    ); 
} 
function errs(){ 
    alert('Error!!!!'); 
} 
</script> 

在views.py:

def section_landpins(request): 
if request.method == "GET": 
    m = ButuanMaps.objects.filter(ssectionid=request.GET['sectionid']) 
    landpins = serializers.serialize("json", m.values('clandpin'), fields=("clandpin")) 
    data = json.dumps({ 
     'pins': landpins, 
    }) 
    return HttpResponse(data, content_type='application/json') 

它返回錯誤

AttributeError at /sectionpins'dict' object has no attribute '_meta' 

當我改變了這個查詢:

m = ButuanMaps.objects.filter(ssectionid=request.GET['sectionid']) 

它不返回一個錯誤,但這樣的:

{"pins": "[{\"pk\": 185625, \"model\": \"tbl.butuanmaps\", \"fields\": {\"clandpin\": \"162-12-0001-055-37\"}} 

回答

0

您可以只要求你有興趣從外地做在ORM,然後評估ValueQuerySet到詞典列表:

section_id = request.GET.get('sectionid', 'defaultid') 

m = ButuanMaps.objects.filter(ssectionid=section_id).values('landpins') 
return HttpResponse(json.dumps({'pins': list(m)}), 
           content_type='application/json') 
+0

請你解釋一下這部分代碼:'SECTION_ID = request.GET.get('SS ectionid','defaultid' – 2014-09-02 08:20:03

相關問題