-
-
Notifications
You must be signed in to change notification settings - Fork 515
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Hi.
I'm getting is nullable but its generic get type parameter is not optional for fields with derived ForeignKey field types.
Given my main model uses a "name" as primary key, I'd like to use _name instead of _id as attname and dbcolum suffix, and I think I can only overwrite dbcolumn in a fields constructor (not the attname).
Demo code:
class ForeignNameKey(models.ForeignKey):
def get_attname(self) -> str:
return '%s_name' % self.name
class Domain(models.Model):
name = models.CharField(unique=True, max_length=255, blank=False, primary_key=True)
class Foo(models.Model):
domain = ForeignNameKey(
Domain,
on_delete=models.RESTRICT,
null=True,
)
-> error: ForeignNameKey is nullable but its generic get type parameter is not optional
I tried understanding what the code from #2048 does, but couldn't figure out why it works with models.ForeignKey and not with my derived class. Also the error message is completely useless - I have no idea how to "fix" it (also unclear what is wrong; I don't think anything is actually wrong).
System information
- OS: debian bookworm
pythonversion: 3.11.2djangoversion: 5.1.2mypyversion: 1.11.2django-stubsversion: 5.1.0django-stubs-extversion: 5.1.0
browser-bug, jerr0328, zaquest and craigds
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working