2012-09-10 66 views
6

我试图做一个JSON,将这个样子的所有字段的值:Django。获取一个对象

[ 
    { 
     "num_of_followers": 2, 
     "name": "Math 140", 
     "created_by": "aaa" 
    } 
] 

问题是,我真的不明白,我怎么能得到值的列表一个特定数据库对象(换句话说我怎样才能得到整个行)

@csrf_exempt 
def create_subject(request, subject): 
    subject, created= Subjects.objects.get_or_create( 
     name=subject, 
     user=request.user, 
     created_by=request.user) 
    list = [] 
    columns = [Subjects._meta.get_all_field_names()] 
    row = ???????? 
    for value in row: 
     record = dict(zip(columns,value)) 
     list.append(record) 
    result = simplejson.dumps(list, indent=4) 
    return HttpResponse(result) 
+1

你在找查询集.values()方法? https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.values – Marat

+0

是的,没错,我只是发现了它,但不幸的是,当我这样做:行= Subjects.objects.get(ID = 3).values(),我发现了错误:“主体”对象没有属性“价值” – Vor

+1

获得()返回一个对象实例,而不是查询集。在这个例子中,Subjects.objects.filter(ID = 3)将工作打算 – Marat

回答

8

使用.values()查询集方法:

@csrf_exempt 
def create_subject(request, subject): 
    subject, created= Subjects.objects.get_or_create( 
     name=subject, 
     user=request.user, 
     created_by=request.user) 

    return HttpResponse(
     simplejson.dumps(
      list(models.Subject.objects.filter(id=subject.id).values()), 
      indent=4 
     ) 
    )