이 기사에서는 Django 형식에서 위젯을 사용하는 방법을 살펴보겠습니다. 위젯은 프론트엔드를 개선하는 데 도움이 됩니다. 위젯은 Django 양식, 텍스트 영역, 입력, 비밀번호 입력 등으로부터 렌더링된 html 요소이며 모두 위젯입니다.
먼저 Django 프로젝트와 앱을 생성해 보겠습니다. "tutorial14"라는 이름으로 프로젝트를 만들었습니다. 및 이름이 "djangoFormWidget"인 앱 .
settings.py에 앱 추가 urls.py 프로젝트에 앱의 URL을 포함합니다.
Templates, home.html, forms.py와 같은 모든 기본 파일과 폴더를 만드세요.
예시
앱의 url.py에서 -
from django.urls import path,include from . import views urlpatterns = [ path('',views.home,name="home") ]
뷰를 렌더링하기 위한 기본 URL을 생성합니다.
views.py에서 -
from django.shortcuts import render from .forms import CommentForm # Create your views here. from django.views.decorators.csrf import csrf_exempt @csrf_exempt def home(request): if request.method=='POST': form=CommentForm(request.POST) if form.is_valid(): form.save() commentform=CommentForm() return render(request,'home.html',{"commentform":commentform})
여기에서 양식을 가져오고 POST 및 GET 요청을 처리했습니다.
POST에서 데이터를 저장하고 GET에서 양식을 프런트엔드로 보냅니다.
models.py에서 -
from django.db import models # Create your models here. class CommentModel(models.Model): comment=models.CharField(max_length=500)
여기에서 양식에 사용할 모델을 만들었습니다. 양식을 사용하려면 이 모델이 필요합니다.
home.html에서 -
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> {% for fm in commentform %} <form method="post"> {%csrf_token%} {{fm.errors}}<br> {{fm.label}}:{{fm}}<br> {%endfor%} <button type="submit">Submit</button> </form> </body> </html>
양식을 렌더링하는 간단한 프런트엔드입니다.
forms.py에서 -
from django import forms from .models import CommentModel class CommentForm(forms.Form): comment=forms.CharField(widget=forms.Textarea(attrs={'class':'comment','title':'add comment'})) # this is the line which is used for widget, here I added TextArea widget you can see we also assigned class to widget using attrs attribute. def save(self): data=self.data modelRef=CommentModel(comment=data['comment']) modelRef.save()
그것은 우리가 우리의 형태를 만드는 곳입니다. 내장된 Django 양식 위젯을 사용하여 양식의 텍스트 영역을 렌더링했습니다.
출력