Opened 10 years ago
Last modified 11 months ago
#26220 assigned New feature
Allow SingleObjectTemplateResponseMixin to get a template_name from form_class if it's a ModelForm
| Reported by: | Guilhem Saurel | Owned by: | Clifford Gama |
|---|---|---|---|
| Component: | Generic views | Version: | 1.9 |
| Severity: | Normal | Keywords: | |
| Cc: | berker.peksag@…, Clifford Gama | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | yes |
| Easy pickings: | no | UI/UX: | no |
Description
In this case, we have to set twice the model (or manually set template_name):
class ArticleForm(ModelForm):
class Meta:
model = Article
fields = ['author', 'date']
def clean_date(self):
...
class ArticleCreateView(CreateView):
form_class = ArticleForm
model = Article # Redundant
A PoC to fix this is available here: https://github.com/nim65s/django/commit/614dae5022bb5c7d8ad0336e17ef1e0c84b9dbbf
Change History (14)
comment:1 by , 10 years ago
| Has patch: | set |
|---|---|
| Needs tests: | set |
| Summary: | CBV: Finding template_name from form_class if it's a ModelForm → Allow SingleObjectTemplateResponseMixin to get a template_name from form_class if it's a ModelForm |
| Triage Stage: | Unreviewed → Accepted |
follow-up: 3 comment:2 by , 10 years ago
| Cc: | added |
|---|
comment:3 by , 10 years ago
Replying to berkerpeksag:
Should we also make
modeloptional forUpdateViewandDeleteView?
What do you mean ? Is there any code that prevents you not to add a model on an UpdateView or a DeleteView ?
In my case, I tested my PoC without any model and it worked… So it is optionnal, isn't it ?
comment:4 by , 10 years ago
So I've checked tests. SingleObjectMixin.get_queryset needed the same kind of modification.
Here is the updated commit:
https://github.com/nim65s/django/commit/3fca6100e573315169281ad15a513e8841791bfc
Tests are passing and coverage is green on my modifications.
comment:5 by , 10 years ago
Could you please create a patch following our PatchReviewChecklist and send a pull request against master?
comment:6 by , 10 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
Here it is: https://github.com/django/django/pull/6311
comment:7 by , 10 years ago
| Needs tests: | unset |
|---|---|
| Patch needs improvement: | set |
Left a few comments for improvement. Please uncheck "Patch needs improvement" after you update it. Thanks!
comment:8 by , 4 years ago
| Owner: | removed |
|---|---|
| Status: | assigned → new |
comment:9 by , 13 months ago
| Cc: | added |
|---|
comment:10 by , 12 months ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:12 by , 12 months ago
| Patch needs improvement: | set |
|---|
comment:13 by , 12 months ago
| Patch needs improvement: | unset |
|---|
comment:14 by , 11 months ago
| Patch needs improvement: | set |
|---|
Should we also make
modeloptional forUpdateViewandDeleteView?