1

我有以下功能,

def facebooktest(request):
    fb_value = ast.literal_eval(request.body)
    fb_foodies = Foodie.objects.filter(facebook_id__in = fb_value.values())
    for fb_foodie in fb_foodies:
        state = request.user.relationships.following().filter(username = fb_foodie.user.username).exists()
        userData = {
            'fbid': fb_foodie.facebook_id,
            'followState': int(state),
                }

基本上,我正在查看用户的哪些 Facebook 朋友在我的 django 应用程序上。如果是,则返回 followState。followState 基本上返回 1 或 0。如果用户已经在我的 Django 应用程序上关注他们,则返回 1,如果他们没有在我的 Django 应用程序上关注他们的 Facebook 朋友,则返回 0。

我想向该用户返回一个 json 类型的字典,如下所示:

[{fbid:222222222222, followState: 0}, {fbid:111111111111, followState: 1}, {fbid:435433434534, followState:1}]

编辑

我有字典结构,但我只想像上面的结构一样返回它。

4

3 回答 3

1

django.forms.models 包中有一个函数:model_to_dict

from django.forms.models import model_to_dict

model_to_dict(your_model, fields=[], exclude=[])

从帮助:

model_to_dict(instance, fields=None, exclude=None)
    Returns a dict containing the data in ``instance`` suitable for passing as
    a Form's ``initial`` keyword argument.

    ``fields`` is an optional list of field names. If provided, only the named
    fields will be included in the returned dict.

    ``exclude`` is an optional list of field names. If provided, the named
    fields will be excluded from the returned dict, even if they are listed in
    the ``fields`` argument.
于 2013-06-17T17:42:41.883 回答
1

我想你正在寻找这个:

return HttpResponse(simplejson.dumps(response_dict), mimetype='application/json')

其中 'response_dict' 将是您的字典。

于 2013-06-17T17:56:49.703 回答
1
def facebooktest(request):
    fb_value = ast.literal_eval(request.body)
    fb_foodies = Foodie.objects.filter(facebook_id__in = fb_value.values())
    response = []
    for fb_foodie in fb_foodies:
        state = request.user.relationships.following().filter(username = fb_foodie.user.username).exists()
        userData = {
            'fbid': fb_foodie.facebook_id,
            'followState': int(state),
                }
        response.append(userData)
    return json.dumps(response)
于 2013-06-17T19:39:39.240 回答