이 기사에서는 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 양식 위젯을 사용하여 양식의 텍스트 영역을 렌더링했습니다.
출력
