mirror of
https://github.com/davidhalter/django-stubs.git
synced 2026-05-19 23:09:56 +08:00
* Fix stubs related to `(Async)RequestFactory` and `(Async)Client`
* Revert incorrect removal.
* Allow set as `unique_together`, use shared type alias.
* Revert `Q.__init__` to use only `*args, **kwargs` to remove false-positive with `Q(**{...})`
* Add abstract methods to `HttpResponseBase` to create common interface.
* Remove monkey-patched attributes from `HttpResponseBase` subclasses.
* Add QueryDict mutability checks (+ plugin support)
* Fix lint
* Return back GenericForeignKey to `Options.get_fields`
* Minor fixup
* Make plugin code typecheck with `--warn-unreachable`, minor performance increase.
* Better types for `{unique, index}_together` and Options.
* Fix odd type of `URLResolver.urlconf_name` which isn't a str actually.
* Better types for field migration operations.
* Revert form.files to `MultiValueDict[str, UploadedFile]`
* Compatibility fix (#916)
* Do not assume that `Annotated` is always related to django-stubs (fixes #893)
* Restrict `FormView.get_form` return type to `_FormT` (class type argument). Now it is resolved to `form_class` argument if present, but also errors if it is not subclass of _FormT
* Fix CI (make test runnable on 3.8)
* Fix CI (make test runnable on 3.8 _again_)
This commit is contained in:
@@ -61,3 +61,34 @@
|
||||
|
||||
class Article(models.Model):
|
||||
pass
|
||||
|
||||
- case: generic_form_views_different_form_classes
|
||||
main: |
|
||||
from django.views.generic.edit import CreateView
|
||||
from django import forms
|
||||
from myapp.models import Article
|
||||
|
||||
class ArticleModelForm(forms.ModelForm[Article]):
|
||||
class Meta:
|
||||
model = Article
|
||||
class SubArticleModelForm(ArticleModelForm):
|
||||
pass
|
||||
class AnotherArticleModelForm(forms.ModelForm[Article]):
|
||||
class Meta:
|
||||
model = Article
|
||||
|
||||
class MyCreateView(CreateView[Article, ArticleModelForm]):
|
||||
def some(self) -> None:
|
||||
reveal_type(self.get_form()) # N: Revealed type is "main.ArticleModelForm*"
|
||||
reveal_type(self.get_form(SubArticleModelForm)) # N: Revealed type is "main.SubArticleModelForm"
|
||||
reveal_type(self.get_form(AnotherArticleModelForm)) # N: Revealed type is "main.AnotherArticleModelForm" # E: Argument 1 to "get_form" of "FormMixin" has incompatible type "Type[AnotherArticleModelForm]"; expected "Optional[Type[ArticleModelForm]]"
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
|
||||
class Article(models.Model):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user