Menu
CoddyTech

מחוברים לאחר ההרשמה

חלק מהיחידה משתמשים וחשבונות במסלול ה-Django של Coddy. שיעור 5 מתוך 16.

משתמש חדש נרשם, ואז צריך להקליד בדף הכניסה את הסיסמה שבחר לפני כמה שניות. התצוגה יכולה לחבר אותו בעצמה.

login(request, user) מתוך django.contrib.auth מתחילה הפעלה עבור המשתמש שמעבירים לה — אותה הפעלה ש-LoginView מתחילה אחרי שהיא בודקת סיסמה. login() לא בודקת דבר, לכן יש לקרוא לה רק עבור משתמש שהקוד שלך כבר אימת. אתר משחקים מחבר שחקן כשהוא פותח את הקישור שבהודעת הפתיחה שלו:

from django.contrib.auth import login


def welcome(request, token):
    player = get_object_or_404(Player, welcome_token=token)
    login(request, player.user)
    return redirect("games:lobby")

בתצוגת ההרשמה שלך, המשתמש המהימן הוא זה ש-form.save() מחזירה.

challenge icon

אתגר

קל
  • לאחר הרשמה תקינה, המשתמש החדש מחובר ומגיע אל /.
  • הרשמה שהטופס דוחה אינה מחברת אף אחד.

לחץ על Run, פתח את /signup/ וצור חשבון: בכותרת מופיע Signed in as ושמך.

נסו בעצמכם

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import get_object_or_404, redirect, render

from .forms import NoteForm
from .models import Note


def note_list(request):
    notes = Note.objects.all()
    return render(request, "notes/note_list.html", {"notes": notes})


def note_detail(request, pk):
    note = get_object_or_404(Note, pk=pk)
    return render(request, "notes/note_detail.html", {"note": note})


def note_create(request):
    if request.method == "POST":
        form = NoteForm(request.POST)
        if form.is_valid():
            note = form.save()
            return redirect("notes:detail", pk=note.pk)
    else:
        form = NoteForm()
    return render(request, "notes/note_form.html", {"form": form})


def note_edit(request, pk):
    note = get_object_or_404(Note, pk=pk)
    if request.method == "POST":
        form = NoteForm(request.POST, instance=note)
        if form.is_valid():
            form.save()
            return redirect("notes:detail", pk=note.pk)
    else:
        form = NoteForm(instance=note)
    return render(request, "notes/note_form.html", {"form": form, "note": note})


def note_delete(request, pk):
    note = get_object_or_404(Note, pk=pk)
    if request.method == "POST":
        note.delete()
        return redirect("notes:list")
    return render(request, "notes/note_confirm_delete.html", {"note": note})


def signup(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect("login")
    else:
        form = UserCreationForm()
    return render(request, "notes/signup.html", {"form": form})
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה משתמשים וחשבונות

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