Fix incorrect instance arg for BaseInlineFormSet.__init__ (#928)

* Fix BaseInlineFormSet generic to retain parent model class info

* Add in test for generic formset improvements
This commit is contained in:
Chris Beaven
2022-04-19 17:59:50 +12:00
committed by GitHub
parent 30bf4dab6c
commit a1b647700b
3 changed files with 29 additions and 7 deletions

View File

@@ -0,0 +1,21 @@
- case: inlineformset_factory
main: |
from typing import Any, Type
from django import forms
from myapp.models import Article, Category
ArticleFS: Type[forms.BaseInlineFormSet[Article, Category, Any]] = forms.inlineformset_factory(Category, Article)
ArticleFS(instance=Article()) # E: Argument "instance" to "BaseInlineFormSet" has incompatible type "Article"; expected "Optional[Category]"
fs = ArticleFS(instance=Category())
reveal_type(fs.instance) # N: Revealed type is "myapp.models.Category*"
installed_apps:
- myapp
files:
- path: myapp/__init__.py
- path: myapp/models.py
content: |
from django.db import models
class Article(models.Model):
pass
class Category(models.Model):
pass