Make SuccessMessageMixin fully compatible with FormMixin (#86)

This ensures that the order in which these mixins are included
into a derrived class does not matter and ends up more accurately
reflecting the return type of SuccessMessageMixin in the process
(its code doesn't appear to enforce that the returned response
is a redirect).

This provides a fix to a secondary aspect of
https://github.com/mkurnikov/django-stubs/issues/79.
This commit is contained in:
Peter Law
2019-07-02 11:34:05 +01:00
committed by Maxim Kurnikov
parent db7b46589f
commit 861c6653fd
2 changed files with 12 additions and 2 deletions

View File

@@ -1,9 +1,9 @@
from typing import Any, Dict, Optional
from django.forms.forms import BaseForm
from django.http.response import HttpResponseRedirect
from django.http.response import HttpResponse
class SuccessMessageMixin:
success_message: str = ...
def form_valid(self, form: BaseForm) -> HttpResponseRedirect: ...
def form_valid(self, form: BaseForm) -> HttpResponse: ...
def get_success_message(self, cleaned_data: Dict[str, str]) -> str: ...

View File

@@ -0,0 +1,10 @@
[CASE successmessagemixin_compatible_with_formmixin]
from django.views.generic.edit import FormMixin
from django.contrib.messages.views import SuccessMessageMixin
class FormFirstView(FormMixin, SuccessMessageMixin):
pass
class SuccessMessageFirstView(FormMixin, SuccessMessageMixin):
pass
[/CASE]