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
- Create forms for creating and editing blog posts.
- Add form validation (e.g., title must be at least 5 characters).
- Implement CRUD operations for your blog.