Django的。获取一个对象中所有字段的值

时间:2012-09-10 23:32:46

标签: python django django-models

我正在尝试制作一个看起来像这样的JSON:

[
    {
        "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)

2 个答案:

答案 0 :(得分: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
        )
    )

答案 1 :(得分:0)

如果您询问如何对一个对象执行此操作,则应使用:

from django.forms.models import model_to_dict


values = model_to_dict(the_object)

@Marat的答案很好,它可以工作,但它仅用于QuerySet,而不是一个对象。