在基于Django类的视图中处理POST请求的正确方法是什么?

时间:2015-09-06 15:48:52

标签: json django post get

在我的基于类的视图中,我正在处理一个post请求(这是一个AJAX调用)。我在数据库表中插入一些数据并将一些json返回到前端。

def post(self,request,*args,**kwargs):

    result_data = {}
    doc = kwargs['doc']
    doc_obj = Document.objects.get_document(doc)

    doc_id = doc_obj.doc_id
    reference_obj = Reference.objects.save_to_db(request,doc_id)

    friendly_name = reference_obj.friendly_name
    result_data['friendly_name'] = friendly_name

    return HttpResponse(json.dumps(result_data),content_type='application/json')

我的问题是,这是处理邮件请求的正确方法吗?我的疑问出现在这里 - 我正在将一些数据写入数据库并返回我写入数据库的相同数据属性的json。

我应该采用不同的方式,即首先在数据库中存储一些数据并返回该行的id并再次在同一个URL上发出GET请求吗?

2 个答案:

答案 0 :(得分:0)

我想说如果它是一个API,最好通过以你的方式返回整个对象来最小化查询数量。如果它是为Web用户界面提供服务,则返回id更简单,如果需要显示,则从客户端本身获取其余数据。

无论哪种方式都没问题。收益可以忽略不计。我还看到应用程序提供本地正面反馈,然后如果请求不成功则替换为否定。该技术可以提高响应性,这一点总是受到重视。

答案 1 :(得分:0)

Django-rest-framework返回插入对象的json,所以我认为复制该行为是合理的。