2013-08-06 4 views
2

제목에서 말했듯이, 대기열에 양식이 채워지는 방법이 있습니까?폼에 쿼리 문자열을 채우는 방법이 있습니까?

class MyForm(forms.Form): 
    subject = forms.CharField(max_length=100) 
    message = forms.CharField(max_length=100) 

그리고

subject=this&message=that 

수동으로 쿼리 문자열을 구문 분석하지 않고 양식을 채울 수있는 방법이 있나요

같은 쿼리 문자열 :

나는 2 개 필드가 장고 양식이 있습니까? 쿼리 문자열은 jquery의 .serialize()을 사용하여 저장된 (db) 형식입니다. 같은 수행

:

form = Myform(my_model.querystring) 

나에게 좋은 초기 데이터 형태이지만 양식을 인스턴스화없는 cleaned_data

+0

작동하지 않은 원시 QueryDict, 같은 일을 사용하여 속임수를 썼는지? 단지 2 ~ 3 줄의 코드입니다. –

+0

제목이 예 또는 아니요 대답을 묻는 중입니다. 나는 그것이 정말로 당신이 원하는 것이 아닌지 의심 스럽습니다. 맞다면 대답은 '예'입니다. –

답변

2

좋아, 결국이 작업을 수행해야했습니다.

from django.http import QueryDict 
form = Myform(QueryDict(my_model.querystring).dict()) 

.dict()는 왜 그냥 구문 분석 initial=QueryDict().dict()

2

을 제공 정확히

나는 장고 1.5

편집 사용하고 POST 데이터를 사용하든 GET 데이터를 사용하든 동일합니다. 이 경우 form = MyForm(request.GET)을 수행하면됩니다.

+0

querystring은 db 모델에서 가져오고 첫 번째 인수는 이상한 동작을합니다. form.fields [ 'subject']. initial은 작동하지만 form.is_valid()를 호출 한 후 form.cleaned_data [ 'subject']가 아닙니다. return 사실) cleaned_data가 비어 있습니다. – maazza

+0

db에 원시 쿼리 문자열을 저장하는 이유를 상상할 수 없습니다. 매우 이상한 일입니다. 그러나 당신은 그것을 사용하여 [QueryDict] (https://docs.djangoproject.com/en/1.5/ref/request-response/#querydict-objects)를 인스턴스화 할 수 있습니다. 이것은 장고가 어쨌든 요청 데이터로 수행하는 작업입니다. 그것을 양식에 전달하십시오. –

+0

나는 이미 그것을하고 있지만 도움이되지 않는다. DB에서 쿼리 문자열을 저장하는 이유는 사용자가 큰 복잡한 형식으로 검색을 저장할 수 있도록하기 위해서이다. – maazza

관련 문제