create(id=None) is valid, if id is AutoField

This commit is contained in:
Maxim Kurnikov
2019-07-22 20:14:59 +03:00
parent 46c48b504f
commit 57796077c6
4 changed files with 86 additions and 54 deletions

View File

@@ -8,7 +8,7 @@ from typing import (
from django.contrib.postgres.fields import ArrayField
from django.core.exceptions import FieldError
from django.db.models.base import Model
from django.db.models.fields import CharField, Field
from django.db.models.fields import CharField, Field, AutoField
from django.db.models.fields.related import ForeignKey, RelatedField
from django.db.models.fields.reverse_related import ForeignObjectRel
from django.db.models.sql.query import Query
@@ -79,6 +79,9 @@ class DjangoFieldsContext:
if method == '__init__':
if field.primary_key or isinstance(field, ForeignKey):
return True
if method == 'create':
if isinstance(field, AutoField):
return True
if field.has_default():
return True
return nullable