我想将ModelForm数据存储在中的数据库中JSONField,以便以后可以根据此数据创建对象,只需调用:
form = ModelForm(data_from_jsonfield_as_querydict)
if form.is_valid():
object = form.save()
Run Code Online (Sandbox Code Playgroud)
问题一:
我在POST中有数据:
>>> print request.POST
{u'field-1': u'value1', u'field-2': [u'value-2a', u'value-2b']}
Run Code Online (Sandbox Code Playgroud)
而且我必须将其转换QueryDict为dict。但是,如果我打电话给request.POST.dict()我,我会失去字段2的列表值:
>>> print request.POST.dict()
{'field-1': 'value1', 'field-2': 'value-2b'}
Run Code Online (Sandbox Code Playgroud)
我尝试使用,request.POST.getlist但随后获得所有值作为列表:
>>> for k in request.POST.keys():
... print request.POST.getlist(k)
[u'value1']
[u'value-2a', u'value-2b']
Run Code Online (Sandbox Code Playgroud)
我什至无法检查上述循环中的给定值是否为列表实例,因为request.POST.get(k)如果值是list且另一方面针对每个字段request.POST[k]返回MultiValueDictKeyError,则不返回错误。
我想到的唯一解决方案是循环遍历所有获得的字段getlist()并将一值列表转换为字符串,但是在我看来,这似乎有点过分。
问题2:
假设问题1已解决,并且我已经dict将表单数据存储在数据库中,如下所示:
# object.data
{u'field-1': u'value1', u'field-2': [u'value-2a', u'value-2b']}
Run Code Online (Sandbox Code Playgroud)
当我想使用上述内容dict作为表单数据创建对象时,我必须将其转换为do QueryDict,这可以通过以下方式简单地完成:
querydict = QueryDict('', …Run Code Online (Sandbox Code Playgroud) 我的目标是通过将我的 Facebook 页面上发布的帖子与我的数据库中的用户 ID 进行匹配来识别这些帖子的作者,这些 ID 是应用程序范围的用户 ID (ASID)。
\n\n我已经生成了用户访问令牌(通过应用程序)并将其扩展为长期访问令牌。然后,我为通过 列出的用户 \xe2\x80\x93 管理的所有页面生成了页面访问令牌GET user/accounts。
首先,我检查帖子的作者({PID}是 Facebook 帖子 ID):
curl -X GET \'https://graph.facebook.com/v6.0/{PID}?fields=admin_creator&access_token={ACCESS_TOKEN}\'\nRun Code Online (Sandbox Code Playgroud)\n\n这给出了我ID的用户,我认为这是页面范围的用户 ID (PSID)。
为了进行匹配,我尝试为数据库中所有用户管理的所有页面建立PSID :
\n\ncurl -X GET \'https://graph.facebook.com/v6.0/{UID}/ids_for_pages?access_token={ACCESS_TOKEN}&appsecret_proof={APPSECRET_PROOF}\'\nRun Code Online (Sandbox Code Playgroud)\n\n其中{UID}是 user ASID,{ACCESS_TOKEN}是 Page Access Token ,APPSECRET_PROOF是由 Page Access Token 和 App Secret 生成的哈希值。应用程序和页面归同一企业所有(必须使用ids_for_pages端点)。
不幸的是,得到的回应是:
\n\n{"data":[]}\nRun Code Online (Sandbox Code Playgroud)\n\n我已阅读文档 \xe2\x80\x93 https://developers.facebook.com/docs/facebook-login/connecting-accounts …