Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-做一个内部视图帖子_Django_Rest_Post - Fatal编程技术网

Django-做一个内部视图帖子

Django-做一个内部视图帖子,django,rest,post,Django,Rest,Post,我有一个Django应用程序,它有两个查看请求。第一个请求(“add_item”)是add请求,它执行一些验证,然后最终将一个项添加到用户队列中。第二个请求点击用户的facebook提要,遍历帖子,并将其中一些帖子添加到他们的队列中。理想情况下,我不想在第二个请求中复制外接程序的逻辑。我宁愿在第二个请求的循环中调用第一个请求 我不知道如何做到这一点,但仍然在请求中传递用户的上下文。有没有人举过这样的例子?我尝试传入POST数据和第一个请求所需的用户上下文: request = { "POST":

我有一个Django应用程序,它有两个查看请求。第一个请求(“add_item”)是add请求,它执行一些验证,然后最终将一个项添加到用户队列中。第二个请求点击用户的facebook提要,遍历帖子,并将其中一些帖子添加到他们的队列中。理想情况下,我不想在第二个请求中复制外接程序的逻辑。我宁愿在第二个请求的循环中调用第一个请求

我不知道如何做到这一点,但仍然在请求中传递用户的上下文。有没有人举过这样的例子?我尝试传入POST数据和第一个请求所需的用户上下文:

request = { "POST": { "queue_id": 1, "data": "some_data_to_add" }, "user": request.user }
add_item(request)

但是,request.user未正确序列化。我也非常确定我不能仅仅通过这种方式传递POST数据,我确定它还需要以某种方式序列化。一般来说,我认为这不是执行类似操作的标准方法。

创建一个单独的a视图,该视图执行将项目添加到队列中的任务,并从第一视图和第二视图调用该函数

例如:

def adding_items(<necessary params>):
    item add logic here.

def first_view(request):
    # call adding items to update queue.
    adding_items( <params> )

def second_view(request):
    # call adding items to update queue.
    adding_items( <params> )
def添加_项():
项目在这里添加逻辑。
def第一视图(请求):
#调用添加项目以更新队列。
添加项目()
def第二视图(请求):
#调用添加项目以更新队列。
添加项目()

就是这样:)

将实际执行工作的代码重构为一个单独的函数,并从两个视图调用该代码。谢谢,这就是我最后要做的。伊格纳西奥,听起来你同意:)