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\"}}
請你解釋一下這部分代碼:'SECTION_ID = request.GET.get('SS ectionid','defaultid' – 2014-09-02 08:20:03