저는 Django를 처음 접했고 ModelForms를 가지고 놀았습니다. 지금까지 ModelForms를 쉽게 만들 수있었습니다. 그러나 한 가지 문제는 버그가 보인다 저 좀 : 사용자가 양식을 채우고 (예를 들어 int
대신 char
또는 누락 blank=False
값) 오류가있는 경우, 양식이 오류를 뱉어과 같다django 모델 양식의 양식 필드 값 기억하기
양식의 유효성을 검사하지 못했을 때 사용자가 입력 한 값을 잊어 버렸습니다. 나는 에 대한 방법이 있다면 값을 기억하여 사용자가 다시 입력 할 필요가 없도록하고 싶습니다. 순간
, 나는 다음과 같은 것이있다 : 나는 폼에 다시 값을 전달form_invalid
에 뭔가를 할 필요가 가정입니다
class ContactForm(CreateView):
form_class = ContactForm
template_name = "superform.html"
success_url = '/ty/'
def form_valid(self, form):
# do something useful with validated form
return super(ContactForm, self).form_valid(form)
def form_invalid(self, form):
# do something useful with invalidated form.
return super(ContactForm,self).form_invalid(form)
을 -하지만 (이 작업을 수행하는 방법을 확실하지 오전 ?).
누군가가 올바른 방향으로 나를 가리킬 수 있다면 정말 고마워 할 것입니다.
감사합니다.
---edit ---
<form class="form" role="form" action="{% url 'coolurl' %}" method="post">{% csrf_token %}
{% if form.non_field_errors %}
<div class="alert">
{% for error in form.non_field_errors %}
<span class="label">Error: {{ error|escape }}</span>
{% endfor %}
</div>
{% endif %}
<div class="form-group">
{% if form.name.errors %}
<div class="alert">
{% for error in form.name.errors %}
<span class="label">Error: {{ error|escape }}</span>
{% endfor %}
</div>
{% endif %}
<label class="col-sm-3" for="id_name">Name:</label>
<div class="col-sm-6">
<input class="form-control"
id="id_name"
type="text"
name="name"
maxlength="128"
placeholder="Your name..">
</div>
</div>
<button type="submit" class="btn btn-success">Submit</button>
</form>
아니요, 이것은 기본 동작입니다. 양식 서식 파일을 보여주십시오. –
은 템플릿에 문제가있는 것 같습니다. 확실히 아약스와 아무 관계도 없음 – Anentropic
@DanielRoseman, Anentropic : 의견을 주셔서 감사합니다. 왜냐하면'{{form_as.p}} '를 사용하면 모든 것이 잘되고 오류가있을 때에도 사용자가 입력 한 값을 기억하는 것 같습니다. 양식 마크 업이 매우 크기 때문에 한 템플릿 만 사용하여 템플릿을 표시했습니다. {{form_as.p}}와 다른 일을하고 있는지 궁금합니다. – AJW