Menu
CoddyTech

טופס POST

חלק מהיחידה טפסים במסלול ה-Django של Coddy. שיעור 2 מתוך 20.

העמוד /events/new/ והתצוגה שלו מוכנים, אבל אין בעמוד טופס להוספת אירוע. טופס שמשנה נתונים משתמש ב־method="post": הדפדפן שולח את השדות בגוף הבקשה, ולא בכתובת ה־URL. התצוגה קוראת אותם מתוך request.POST, לפי ערך ה־name של כל שדה קלט.

Django מוסיפה כלל אחד. אתר אחר יכול להסתיר טופס ששולח בקשה לאתר שלך, והדפדפן של המבקר ישלח אותה יחד עם העוגיות שלו: מתקפה שנקראת CSRF. לכן Django דוחה כל בקשת POST בלי אסימון סודי מהעמוד שלך, ומחזירה 403 Forbidden. ‏{% csrf_token %} בתוך הטופס מוסיף את האסימון הזה. טופס הרשמה לניוזלטר:

<form method="post">
    {% csrf_token %}
    <label for="email">Email</label>
    <input id="email" name="email" type="email">
    <button type="submit">Subscribe</button>
</form>

‏<label> מציין את שדה הקלט שה־id שלו תואם לערך ה־for, ו־type="date" מציג לוח שנה.

challenge icon

אתגר

קל

בקובץ new_event.html, כתבו את הטופס שהתצוגה מצפה לו:

  • הוא שולח את השדות שלו באמצעות POST וכולל את אסימון ה-CSRF.
  • קלט אחד עם תווית לכל ערך שהתצוגה קוראת. קלט התאריך מציג לוח שנה.
  • כפתור שליחה.

לחצו על Run, הוסיפו אירוע ואז פתחו את דף הבית.

נסו בעצמכם

{% extends "events/base.html" %}

{% block title %}Add an event{% endblock %}

{% block content %}
<h1>Add an event</h1>
{# כתבו את הטופס כאן #}
{% endblock %}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה טפסים

תרגלו בעצמכם: Django אונליין