Menu

Forms and User Input

Introduction

Django's forms system handles form rendering, validation, and processing. It protects against CSRF attacks automatically and integrates with your models.

ModelForms

# forms.py
from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'body', 'published']

# views.py
def post_create(request):
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
    return render(request, 'blog/post_form.html', {'form': form})

Assignment

  1. Create forms for creating and editing blog posts.
  2. Add form validation (e.g., title must be at least 5 characters).
  3. Implement CRUD operations for your blog.

Support me!

I am a software engineer giving back to the community - my name is Musila Peter. Join me in empowering learners around the globe by supporting SaneGenius!