반응형
장고 프레임워크의 양식 필드에서 가치를 얻는 방법은 무엇입니까?
장고 프레임워크의 양식 필드에서 값을 가져오려면 어떻게 해야 합니까?템플릿이 아닌 뷰에서 작업을 수행합니다.
보기에서 양식을 처리하는 표준 패턴은 다음과 같습니다.
def contact(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
print form.cleaned_data['my_form_field_name']
return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
form = ContactForm() # An unbound form
return render_to_response('contact.html', {
'form': form,
})
원하는 항목 선택:
def my_view(request):
if request.method == 'POST':
print request.POST.get('my_field')
form = MyForm(request.POST)
print form['my_field'].value()
print form.data['my_field']
if form.is_valid():
print form.cleaned_data['my_field']
print form.instance.my_field
form.save()
print form.instance.id # now this one can access id/pk
참고: 필드는 사용 가능한 즉시 액세스됩니다.
데이터의 유효성을 검사한 후에 이 작업을 수행할 수 있습니다.
if myform.is_valid():
data = myform.cleaned_data
field = data['field']
또한 장고 문서를 읽으세요.그들은 완벽합니다.
게시 요청을 보내는 양식에서 데이터를 검색하려면 다음과 같이 할 수 있습니다.
def login_view(request):
if(request.POST):
login_data = request.POST.dict()
username = login_data.get("username")
password = login_data.get("password")
user_type = login_data.get("user_type")
print(user_type, username, password)
return HttpResponse("This is a post request")
else:
return render(request, "base.html")
저는 django 1.7+와 python 2.7+를 사용했는데, 위의 솔루션은 작동하지 않습니다.양식의 입력 값은 아래와 같이 POST를 사용할 수 있습니다(위의 동일한 양식 사용).
if form.is_valid():
data = request.POST.get('my_form_field_name')
print data
이게 도움이 되길 바랍니다.
django 버전 3.1 이상을 사용하고 있다면 쉽습니다.
def login_view(request):
if(request.POST):
yourForm= YourForm(request.POST)
itemValue = yourForm['your_filed_name'].value()
# Check if you get the value
return HttpResponse(itemValue )
else:
return render(request, "base.html")
Cleaned_data는 제출된 양식을 딕트로 변환합니다. 여기서 키는 양식에 사용되는 속성 이름을 나타내고 값은 사용자가 제출한 응답입니다.작성한 보기에서 특정 값에 액세스할 수 있습니다.
formname.cleaned_data['fieldname']
django 뷰셋이나 APIView의 경우 request.data를 받기만 하면 됩니다. 그리고 뷰에 전달되는 데이터가 항상 Form data인 것이 확실하다면,
- 데이터 복사(예:
data = request.data.copy()
- 폼 데이터가 목록의 키 값과 함께 반환됩니다.
data['key'][0]
첫 번째 값인 목록의 첫 번째 요소를 가져오려면 키를 누르면 키의 단일 값만 반환됩니다.
예를들면
class EquipmentView(APIView):
def post(self, request: Request):
data = request.data.copy()
author = data.get('author')[0]
언급URL : https://stackoverflow.com/questions/4706255/how-to-get-value-from-form-field-in-django-framework
반응형
'programing' 카테고리의 다른 글
로컬 Oracle 인스턴스를 기반으로 개발 (0) | 2023.07.18 |
---|---|
듀얼에서 N개의 행을 반환하는 SQL 쿼리 (0) | 2023.07.18 |
숫자처럼 보이는 것을 인덱싱할 때 파이썬의 "세 개의 점"은 무엇을 의미합니까? (0) | 2023.07.18 |
JDBC를 사용하여 Oracle에 연결하기 위해 자격 증명 저장을 피하는 방법은 무엇입니까? (0) | 2023.07.18 |
HTTP 오류 429(Too Many Requests) 파이썬을 방지하는 방법 (0) | 2023.07.18 |