mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-09-16 01:02:29 +03:00
fix: add model parents to create unique_constraint_by_fields
This commit is contained in:
parent
c54c658cdd
commit
58e856527c
|
@ -1607,7 +1607,9 @@ class ModelSerializer(Serializer):
|
||||||
source_map[source].append(name)
|
source_map[source].append(name)
|
||||||
|
|
||||||
unique_constraint_by_fields = {
|
unique_constraint_by_fields = {
|
||||||
constraint.fields: constraint for constraint in self.Meta.model._meta.constraints
|
constraint.fields: constraint
|
||||||
|
for model_cls in (self.Meta.model, *self.Meta.model._meta.parents)
|
||||||
|
for constraint in model_cls._meta.constraints
|
||||||
if isinstance(constraint, models.UniqueConstraint)
|
if isinstance(constraint, models.UniqueConstraint)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -627,13 +627,7 @@ class UniqueConstraintCustomMessageCodeModel(models.Model):
|
||||||
fields=("username", "company_id"),
|
fields=("username", "company_id"),
|
||||||
name="unique_username_company_custom_msg",
|
name="unique_username_company_custom_msg",
|
||||||
violation_error_message="Username must be unique within a company.",
|
violation_error_message="Username must be unique within a company.",
|
||||||
violation_error_code="duplicate_username",
|
**(dict(violation_error_code="duplicate_username") if django_version[0] >= 5 else {}),
|
||||||
)
|
|
||||||
if django_version[0] >= 5
|
|
||||||
else models.UniqueConstraint(
|
|
||||||
fields=("username", "company_id"),
|
|
||||||
name="unique_username_company_custom_msg",
|
|
||||||
violation_error_message="Username must be unique within a company.",
|
|
||||||
),
|
),
|
||||||
models.UniqueConstraint(
|
models.UniqueConstraint(
|
||||||
fields=("company_id", "role"),
|
fields=("company_id", "role"),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user