programing

장고 프레임워크의 양식 필드에서 가치를 얻는 방법은 무엇입니까?

oldcodes 2023. 7. 18. 21:57
반응형

장고 프레임워크의 양식 필드에서 가치를 얻는 방법은 무엇입니까?

장고 프레임워크의 양식 필드에서 값을 가져오려면 어떻게 해야 합니까?템플릿이 아닌 뷰에서 작업을 수행합니다.

보기에서 양식을 사용하는 이 거의 설명이 됩니다.

보기에서 양식을 처리하는 표준 패턴은 다음과 같습니다.

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인 것이 확실하다면,

  1. 데이터 복사(예:data = request.data.copy()
  2. 폼 데이터가 목록의 키 값과 함께 반환됩니다.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

반응형