Django Widget Tweaks를 사용하여 Django 양식을 사용자 정의하는 방법
5080 단어 codenewbiedjangopythonbeginners
이렇게 하면 개발자가 제안된 기한까지 작업을 완료하는 것이 더 간단해집니다.
Django에는 ModelForm 클래스를 사용하여 모델에서 데이터를 렌더링할 수 있는 양식을 활성화하는 많은 옵션이 있습니다.
그러나 Django 양식은 다음을 사용하여 자동화할 수 있습니다.
{{form.as_p}}
- 양식을 단락으로 렌더링{{form.as_table}}
- 양식을 테이블로 렌더링{{form.as_ul}}
- 양식을 목록으로 렌더링그러나 이 모든 것은 Django 양식을 암묵적으로 자동화합니다. 예를 들어 Model Form을 사용하고 form.as_p를 사용하여 Django 양식을 만듭니다....
models.py
from django.db import models
class Post(models.Model):
firstname = models.CharField()
lastname = models.CharField()
email = models.EmailField()
def __str__(self):
return self.firstname
form.py
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['posts', 'caption']
views.py
def getPost(request):
post = Post.objects.all()
context = {
'post':post
}
return render(request,'post_form.html',context)
post_form.html
<div class="col-md-4">
<form class="form" method="post" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class="text-center mb-4">Upload Post</legend>
{{form.as_p}}
</fieldset>
<button type="submit" class="btn btn-primary">Post</button>
</form>
</div>
Django 자체를 사용하여 자동화하는 대신 고유한 HTML 양식을 사용한다고 가정합니다.
예: HTML 형식
<form action="">
<label for="fname">First name:</label><br>
<input type="text" id="fname" value="John"><br><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" value="Doe"><br><br>
<label for="email">Email:</label><br>
<input type="email" id="email" value="[email protected]"><br><br>
<input type="submit" value="Submit">
</form>
이 양식을 렌더링하려면 Django Tweaks 이라는 Django 패키지를 사용해야 합니다.
pip install django-widget-tweaks
그런 다음 settings.py에 추가하십시오.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#New
'widget_tweaks'
]
그리고 템플릿에서 다음과 같이 로드하는 것을 잊지 마십시오.
{% load widget_tweaks %}
Django Tweaks 라이브러리에는 양식을 사용자 지정하는 두 가지 옵션이 있습니다.
render_field 사용
<form>
<div class="form-group">
{% render_field form.firstname class="form-control"
placeholder=form.firstname.label type="text" %}
</div>
<div class="form-group">
{% render_field form.lastname class="form-control"
placeholder=form.lastname.label type="text" %}
</div>
<div class="form-group">
{% render_field form.email class="form-control"
placeholder=form.email.label type="email" %}
</div>
</form>
템플릿 필터 사용
위의 post_form.html 파일에서 form.as_p를 다음으로 바꿉니다.
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in form.visible_fields %}
<div class="form-group">
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
{{ field|add_class:'form-control' }}
{% for error in field.errors %}
<span class="help-block">{{ error }}</span>
{% endfor %}
</div>
{% endfor %}
Django 조정 라이브러리는 HTML 양식을 사용자 지정하는 데 사용하는 필수 도구이며 선택한 모든 양식에 유연합니다.
참조
Reference
이 문제에 관하여(Django Widget Tweaks를 사용하여 Django 양식을 사용자 정의하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lodyne/how-to-customize-django-forms-using-django-widget-tweaks-1ih9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)