urls.py
:
urlpatterns = [
path('employee/add_employee/', views.add_employee, name='add-employee'),
path('employee/add_employee/add/', views.add_employee_action, name='add-employee-action'),
]
나는이 add-employee
페이지를 어떤 형태가 채울.
views.py
:
def add_employee(request):
personal_form = PersonalEmployeeForm()
history_form = EmployeeHistoryForm()
return render(
request,
'sections/add_employee.html',
context={
'personal_form': personal_form,
'history_form': history_form,
}
)
def add_employee_action(request):
if request.method == "POST":
personal_form = PersonalEmployeeForm(request.POST)
history_form = EmployeeHistoryForm(request.POST)
if personal_form.is_valid() and history_form.is_valid():
# here is some logic with models
return redirect('add-employee')
else:
personal_form = PersonalEmployeeForm()
history_form = EmployeeHistoryForm()
return render(
request,
'sections/add_employee.html',
context={
'personal_form': personal_form,
'history_form': history_form,
}
)
주형:
<form id="a-submit-form" action="add/" method="POST">
{% csrf_token %}
<div class="column-wrapper">
<div class="column">
<div class="form-wrapper">
{% for field in personal_form.visible_fields %}
{% include "elements/forms/form_line.html" %}
<br>
{% endfor %}
</div>
</div>
<div class="column">
<div class="form-wrapper">
{% for field in history_form.visible_fields %}
{% include "elements/forms/form_line.html" %}
<br>
{% endfor %}
</div>
</div>
</div>
<div class="button-bar-wrapper">
<div class="button_bar">
<a class="a-button positive" id="submit">Добавить</a>
<a class="a-button" href="{% url 'employee' %}">Сотрудники</a>
<a class="a-button" href="{% url 'index' %}">На главуную</a>
</div>
</div>
</form>
요소 별 제출은 테스트되었으며 jQuery 스크립트로 잘 작동합니다.
문제는 잘못된 양식을 제출 한 후 blah-blah/employee/add_employee/add/
URL 이있는 페이지가 있습니다. 그리고 양식을 다시 제출하려고하면 blah-blah/employee/add_employee/add/add/
URL 이있는 페이지 가 있는데 잘못된 것입니다. blah-blah/employee/add_employee/
URL로 페이지를 렌더링하고 모든 오류 메시지를 표시 하려면 어떻게 해야합니까?
템플릿 의 태그에 상대 URL을 작성했기 때문일 수 있습니다 . 따라서 템플릿에는 다음과 같은 내용이 포함됩니다.<form>
sections/add_employee.html
<form method="post" action="add/">
...
</form>
{% url … %}
템플릿 태그 [Django-doc] 와 함께 URL을 사용할 수 있습니다 .
<form method="post" action="{% url 'add-employee-action' %}">
...
</form>
또한 일반적으로 동일한 경로를 사용하여 GET 및 POST 요청을 처리합니다. 따라서 실제로 단순히 'add-employee'
경로 를 제거 할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다