diff --git a/djangobench/benchmarks/model_validate/__init__.py b/djangobench/benchmarks/model_validate/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/djangobench/benchmarks/model_validate/benchmark.py b/djangobench/benchmarks/model_validate/benchmark.py new file mode 100644 index 0000000..157c70c --- /dev/null +++ b/djangobench/benchmarks/model_validate/benchmark.py @@ -0,0 +1,20 @@ + +from djangobench.utils import run_benchmark + + +def setup(): + global Book + from model_validate.models import Book + +def benchmark(): + global Book + b = Book(title="hi") + b.full_clean() + +run_benchmark( + benchmark=benchmark, + meta={ + 'description' : 'Model validation benchmark' + }, + setup=setup +) \ No newline at end of file diff --git a/djangobench/benchmarks/model_validate/models.py b/djangobench/benchmarks/model_validate/models.py new file mode 100644 index 0000000..f1cb109 --- /dev/null +++ b/djangobench/benchmarks/model_validate/models.py @@ -0,0 +1,14 @@ +from django.core.exceptions import ValidationError +from django.utils.translation import gettext_lazy as _ + +from django.db import models + +def validate_title(title): + if title != 'hi': + raise ValidationError( + _('%(title)s is not hi'), + params={'title': title}, + ) + +class Book(models.Model): + title = models.CharField(max_length=100, validators=[validate_title]) \ No newline at end of file diff --git a/djangobench/benchmarks/model_validate/settings.py b/djangobench/benchmarks/model_validate/settings.py new file mode 100644 index 0000000..2074728 --- /dev/null +++ b/djangobench/benchmarks/model_validate/settings.py @@ -0,0 +1,3 @@ +from djangobench.base_settings import * # NOQA + +INSTALLED_APPS = ['model_validate'] \ No newline at end of file