2009-09-26 3 views
1

N (알 수 없음) user_id를 제출할 양식 (POST 기준)을 제출하고 싶습니다. 보기로 해당 ID를 목록으로받을 수 있습니까? 예를django. 뷰가 매개 변수로 목록을받을 수 있습니까?

def getids(request,list): 

    for id in list: 
     usr = User.objects.get(pk=id); 
     //do something with it. 
     usr.save() 

를 들어

for id in request.POST['id']: 

도 가능

인가?

가장 적합한 방법을 찾고 있습니다.

답변

5

당신은 읽어야에 대한 QueryDict objects :

>>> q = QueryDict('a=1&a=2&a=3') 
>>> q.lists() 
[('a', ['1', '2', '3'])] 
+0

할 것, 감사 – Tom

2

매우 가깝습니다. POST 매개 변수는 실제로 요청시 QueryDict object에 포함됩니다. 한 페이지에서 동일한 형태를 많이 제출하는 경우

def getids(request): 
    if request.method == 'POST': 
     for field in HttpRequest.POST: 
      // Logic here 
+0

감사합니다! 나는 그것을 살펴볼 것이다. – Tom

2

당신은 Formsets 원하는 일이 될 찾을 수 있습니다.

그러면 사용자 ID에 대해 하나의 양식을 만든 다음 Formset에서이를 반복 할 수 있습니다. 그런 다음 formset을 반복하여 결과를 읽을 수 있습니다.

+0

그래, 나는 그 접근법을 고려했지만 마감일을 가진 초보자로서 나는 그것을 거절했다. 앞으로는 형식 세트를 사용하게 될 것입니다. 감사 ! – Tom

0

나중에 필터링 할 수있는 접두사가있는 양식 필드를 만들 수 있습니다.

은 당신이 POST를 처리 할 때 당신이 할 수있는,

그런 UID-1, UID-2, ... UID-N과 같은 이름을 가진 양식 필드를 사용하는 말 :

uids = [POST[x] for x in POST.keys() if x[:3] == 'uid'] 

을 그 것 POST에서 'uid'로 시작하는 필드의 값을 목록에 표시합니다.

+0

그건 x [: 3]이 아니라 x [: 2] –

+0

예쁘다, 미안, 나쁘다. –

0

QueryDictgetlist입니다. 워드 프로세서

:

>>> q = QueryDict('a=1', mutable=True) 
>>> q.update({'a': '2'}) 
>>> q.getlist('a') 
['1', '2']