Name collision for "next" template variable between contrib.comments and views.generic.list_detail
|Reported by:||erik||Owned by:||nobody|
|Cc:||Triage Stage:||Design decision needed|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Both the comment system (in post_comment and it's accompagnying forms) and the generic views system (in views.generic.list_detail's legacy template context stuff) use a template variabled named "next". The comment app's templates approve.html, delete.html, flag.html and preview.html render a hidden form field if next is not empty.
If you use for example the list_detail view with a template which renders a comment form for each list item, the comment form wrongly uses the next-value from the list_details view (the next page number). On posting the comment the user get's an 404 error, because the post_comment view now tries to redirect to a wrong URL containing the next page number.
Maybe it's generally a bad idea to use very simple context variable names like next in prepackaged apps.
Change History (7)
Changed 5 years ago by erik
comment:1 Changed 5 years ago by russellm
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Triage Stage changed from Unreviewed to Design decision needed
comment:2 Changed 5 years ago by julien
- Component changed from Contrib apps to django.contrib.comments