참고 :이 질문은 유사하지만 Django 1.11 이전의 템플릿 기반 양식 렌더링을 릴리스 한 이전 질문과는 관련이 없습니다.Django 1.11 템플릿 기반 폼 렌더링을 사용하여 CSS 클래스를 위젯/필드에 추가하는 방법
장고에 템플릿 기반 폼 렌더링이 적용된 것을 알고 있습니다. 내가 이해하는 바에 따르면, 템플릿에 HTML/CSS를 모두 보관하는 대신보기 또는 양식에서 CSS 클래스를 삽입해야하는 문제를 해결해야합니다. 표시되는 내용을에 초점을 맞추고 내 양식 및보기를 유지하기 위해, 내 템플릿 표시되는 방법을에 초점을 맞추고 : 내 목표이다
. 그래서 모든 템플릿을 내 템플릿에 보관하고 싶습니다.
그래서, 내 질문은 :
- 어떻게 템플릿 시스템에서 모든
TextInput
위젯 (form-text
예를 들어) 클래스를 추가하는 방법은 무엇입니까? - 템플릿 시스템의 모든 오류 메시지 (유효성 검사 실패)에 클래스 (예 :
alert-warning
)를 추가하려면 어떻게합니까?
이 새로운 기능에 대해 잘못 이해했을 수도 있습니다. 그렇다면 어떻게 작동하는지 또는 불가능한지 묻는다면 알려 주시기 바랍니다. 이상적으로,이 서식 렌더링 변경을 마스터 템플릿에 구현하고 싶습니다.
views.py
샘플 문제 :
class SignUp(generic.edit.CreateView):
model = models.User
template_name = 'usermgmt/sign_up.html'
form_class = forms.UserCreateForm
success_url = '/sign_up_done/'
templates/master.html
(I 클래스 얻기 위해 모든 TextInput
위젯을 유발하는 여기에 뭔가를 넣어 원하는) :
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<title>{% block title %}{% endblock %} | Website</title>
</head>
<body>
<div class="content-wrapper clearfix">
{% block main %}{% endblock %}
</div>
</body>
</html>
templates/usermgmt/sign_up.html
:
{% extends 'master.html' %}
{% block title %}Sign Up{% endblock %}
{% block main %}
<h1>Sign Up</h1>
<p>Enter your email to sign up!</p>
<form class="form-group" method="post">
{% csrf_token %}
<input type="hidden" name="next" value="{{ next }}">
{{ form.as_p }}
<button class="btn btn-primary" type="submit">Sign Up</button>
</form>
{% endblock %}
최고 답; 'custom-error' 클래스로 모든 오류 메시지를 어떻게 스타일링합니까? 오류 메시지가 "위젯"입니까? 필자는 수동으로'field.errors'를 주입하여 에러의 스타일을 지정할 수 있기 때문에 실제로 이것을 필요로하지 않습니다. 그러나 이것이 템플릿을 작성하는 것이 쉬운 방법인지 궁금합니다. –
위의 템플릿 위치가 Anna Thomas의 대답 – Yunti