Add deferrable argument to unique constraint (#472)

This commit is contained in:
Nicolas Delaby
2021-01-20 09:04:38 +01:00
committed by GitHub
parent bdc7db1154
commit a8d8561d0e
2 changed files with 10 additions and 1 deletions

View File

@@ -132,6 +132,7 @@ from . import signals as signals
from .constraints import ( from .constraints import (
BaseConstraint as BaseConstraint, BaseConstraint as BaseConstraint,
CheckConstraint as CheckConstraint, CheckConstraint as CheckConstraint,
Deferrable as Deferrable,
UniqueConstraint as UniqueConstraint, UniqueConstraint as UniqueConstraint,
) )

View File

@@ -1,3 +1,4 @@
import enum
from typing import Any, Optional, Sequence, Tuple, Type, TypeVar from typing import Any, Optional, Sequence, Tuple, Type, TypeVar
from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.backends.base.schema import BaseDatabaseSchemaEditor
@@ -6,6 +7,10 @@ from django.db.models.query_utils import Q
_T = TypeVar("_T", bound="BaseConstraint") _T = TypeVar("_T", bound="BaseConstraint")
class Deferrable(enum.Enum):
DEFERRED: str
IMMEDIATE: str
class BaseConstraint: class BaseConstraint:
name: str name: str
def __init__(self, name: str) -> None: ... def __init__(self, name: str) -> None: ...
@@ -24,4 +29,7 @@ class CheckConstraint(BaseConstraint):
class UniqueConstraint(BaseConstraint): class UniqueConstraint(BaseConstraint):
fields: Tuple[str] fields: Tuple[str]
condition: Optional[Q] condition: Optional[Q]
def __init__(self, *, fields: Sequence[str], name: str, condition: Optional[Q] = ...): ... deferrable: Optional[Deferrable]
def __init__(
self, *, fields: Sequence[str], name: str, condition: Optional[Q] = ..., deferrable: Optional[Deferrable] = ...
) -> None: ...