diff --git a/backend/app/schemas.py b/backend/app/schemas.py index 11ba706..4fbc003 100644 --- a/backend/app/schemas.py +++ b/backend/app/schemas.py @@ -41,11 +41,13 @@ class TemplateCreate(BaseModel): @model_validator(mode="after") def validate_source(self): - """Проверяет источник в зависимости от типа гостя.""" + """Для VM и LXC требует один из допустимых источников.""" if self.guest_type == GuestType.vm and self.source_vmid is None: raise ValueError("Для VM требуется source_vmid") - if self.guest_type == GuestType.lxc and not self.source_template: - raise ValueError("Для LXC требуется source_template") + if self.guest_type == GuestType.lxc and self.source_vmid is None and not self.source_template: + raise ValueError("Для LXC требуется source_vmid или source_template") + if self.source_vmid is not None and self.source_template is not None: + raise ValueError("Нельзя одновременно указывать source_vmid и source_template") return self