From 87d59c7c1a3f755f3035ce5464efb4d32b76ea00 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 11 Oct 2019 16:16:21 +0700 Subject: [PATCH] Fix `django.contrib.admin.options.BaseModelAdmin.has_add_permission` (#205) * Fix `django.contrib.admin.options.BaseModelAdmin.has_add_permission` (#203). * Add `django.db.models.base.Model.unique_error_message` (#204). --- django-stubs/contrib/admin/options.pyi | 2 +- django-stubs/db/models/base.pyi | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/django-stubs/contrib/admin/options.pyi b/django-stubs/contrib/admin/options.pyi index d1dad41..879e8e2 100644 --- a/django-stubs/contrib/admin/options.pyi +++ b/django-stubs/contrib/admin/options.pyi @@ -86,7 +86,7 @@ class BaseModelAdmin: def get_sortable_by(self, request: HttpRequest) -> Union[List[Callable], List[str], Tuple]: ... def lookup_allowed(self, lookup: str, value: str) -> bool: ... def to_field_allowed(self, request: HttpRequest, to_field: str) -> bool: ... - def has_add_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... + def has_add_permission(self, request: HttpRequest) -> bool: ... def has_change_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... def has_delete_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... def has_view_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... diff --git a/django-stubs/db/models/base.pyi b/django-stubs/db/models/base.pyi index 439535c..41339f1 100644 --- a/django-stubs/db/models/base.pyi +++ b/django-stubs/db/models/base.pyi @@ -1,6 +1,7 @@ -from typing import Any, Dict, List, Optional, Sequence, Set, Tuple, TypeVar, Union, Collection +from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Tuple, Type, TypeVar, Union, Collection from django.core.checks.messages import CheckMessage +from django.core.exceptions import ValidationError from django.db.models.manager import Manager from django.db.models.options import Options @@ -22,6 +23,9 @@ class Model(metaclass=ModelBase): def clean(self) -> None: ... def clean_fields(self, exclude: Optional[Collection[str]] = ...) -> None: ... def validate_unique(self, exclude: Optional[Collection[str]] = ...) -> None: ... + def unique_error_message( + self, model_class: Type[_Self], unique_check: Collection[Union[Callable, str]] + ) -> ValidationError: ... def save( self, force_insert: bool = ...,