将django请求对象作为arg或kwarg传递?

时间:2018-04-10 20:25:06

标签: python kwargs

我不确定这是一个django / drf问题,还是只是处理args / kwaargs的简单Python问题..

我创建了一个改变传入JSON上某些字段的函数,我试图通过views.py中的POST方法调用它。

问题是我需要函数来处理可变数量的变量以及django请求对象,我不知道如何处理它而不会出现错误。

这是我目前的代码:

在views.py 中

def post(self, request, person, city, format=None):
    request = PreSerializer(request, person, city)
    serializer = CreateRecordSerializer(data=request.data)
    if serializer.is_valid():

PreSerializer功能

def PreSerializer(request, *args):

    if person = "david":
        person = 1:

    # Converts strings in JSON to foreignkey ID's
    if 'name' in request.data:
        person_record = get_object_or_404(Person, name=[request.data['person'])
        request.data["person"] = person_record.id

    if 'city' in request.data:
        city_record = get_object_or_404(City, name=request.data['city])
        request.data["city"] = city_record.id
    return request

我认为这个问题与(request,* args)

有关

错误

if person
UnboundLocalError: local variable 'person' referenced before assignment

1 个答案:

答案 0 :(得分:1)

您可以更改功能的签名以包含$(document).ready(function() { //exit early if no geolocation if(!navigator.geolocation) return; var destinationAddress = "<?=$destionationAddress?>"; } );

person

或者,如果您可以从def PreSerializer(request, person, *args): if person = "david": ... 获取此人。

args