Challenge - 5 Problems
DeleteView Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What happens after a successful deletion in Django's DeleteView?
Consider a Django DeleteView that deletes an object. What is the default behavior after the object is deleted?
Django
from django.views.generic import DeleteView from django.urls import reverse_lazy from .models import Item class ItemDeleteView(DeleteView): model = Item success_url = reverse_lazy('item-list')
Attempts:
2 left
💡 Hint
Think about what success_url is used for in DeleteView.
✗ Incorrect
DeleteView automatically redirects to the success_url after deleting the object. This is the default behavior to avoid showing the deleted object again.
📝 Syntax
intermediate2:00remaining
Which DeleteView code snippet correctly sets up deletion for a model named Book?
Choose the correct Django DeleteView code to delete a Book model instance and redirect to 'book-list' URL.
Attempts:
2 left
💡 Hint
Remember that success_url needs a URL string, not a name or function call without lazy evaluation.
✗ Incorrect
Using reverse_lazy with the URL name as a string is the correct way to set success_url in class-based views like DeleteView.
🔧 Debug
advanced2:00remaining
Why does this DeleteView raise a NoReverseMatch error?
Given this DeleteView code, why does Django raise NoReverseMatch when trying to delete an object?
Django
class AuthorDeleteView(DeleteView): model = Author success_url = reverse_lazy('author_detail')
Attempts:
2 left
💡 Hint
Check if the URL named 'author_detail' requires parameters.
✗ Incorrect
The URL named 'author_detail' likely requires an argument like a primary key. Using reverse_lazy without arguments causes NoReverseMatch.
❓ state_output
advanced2:00remaining
What is the state of the database after calling DeleteView's post method?
If you call the post method of a DeleteView for an object with id=5, what happens to that object in the database?
Django
view = ItemDeleteView.as_view()
# Simulate POST request to delete object with id=5
response = view(request_post_for_id_5)Attempts:
2 left
💡 Hint
DeleteView is designed to remove objects from the database.
✗ Incorrect
DeleteView deletes the object from the database when the POST request is processed successfully.
🧠 Conceptual
expert2:00remaining
Which statement about DeleteView's template_name usage is correct?
In Django's DeleteView, what is the role of the template_name attribute if set? Choose the correct statement.
Attempts:
2 left
💡 Hint
Think about what happens when you visit a DeleteView URL with a GET request.
✗ Incorrect
DeleteView shows a confirmation page on GET requests using the template_name. After deletion (POST), it redirects.