{
"case": {
"Name": "create_long_title",
"Method": "POST",
"Path": "/api/posts",
"Body": "{\"author_id\":1,\"title\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"body\":\"Y\"}"
},
"status": 500,
"headers": {
"Content-Type": "text/plain",
"Cross-Origin-Opener-Policy": "same-origin",
"Referrer-Policy": "same-origin",
"X-Content-Type-Options": "nosniff",
"X-Frame-Options": "DENY"
},
"body": "Traceback (most recent call last):\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/backends/utils.py\", line 105, in _execute\n return self.cursor.execute(sql, params)\n ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/psycopg/cursor.py\", line 117, in execute\n raise ex.with_traceback(None)\npsycopg.errors.StringDataRightTruncation: value too long for type character varying(255)\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/ninja/operation.py\", line 216, in run\n result = self.view_func(request, **values)\n File \"\u003crepo\u003e/blog/api.py\", line 95, in create_post\n post = Post.objects.create(\n author=author,\n title=payload.title,\n body=payload.body,\n )\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/manager.py\", line 87, in manager_method\n return getattr(self.get_queryset(), name)(*args, **kwargs)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/query.py\", line 665, in create\n obj.save(force_insert=True, using=self.db)\n ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/base.py\", line 902, in save\n self.save_base(\n ~~~~~~~~~~~~~~^\n using=using,\n ^^^^^^^^^^^^\n ...\u003c2 lines\u003e...\n update_fields=update_fields,\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/base.py\", line 1008, in save_base\n updated = self._save_table(\n raw,\n ...\u003c4 lines\u003e...\n update_fields,\n )\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/base.py\", line 1169, in _save_table\n results = self._do_insert(\n cls._base_manager, using, fields, returning_fields, raw\n )\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/base.py\", line 1210, in _do_insert\n return manager._insert(\n ~~~~~~~~~~~~~~~^\n [self],\n ^^^^^^^\n ...\u003c3 lines\u003e...\n raw=raw,\n ^^^^^^^^\n )\n ^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/manager.py\", line 87, in manager_method\n return getattr(self.get_queryset(), name)(*args, **kwargs)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/query.py\", line 1873, in _insert\n return query.get_compiler(using=using).execute_sql(returning_fields)\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/models/sql/compiler.py\", line 1882, in execute_sql\n cursor.execute(sql, params)\n ~~~~~~~~~~~~~~^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/backends/utils.py\", line 122, in execute\n return super().execute(sql, params)\n ~~~~~~~~~~~~~~~^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/backends/utils.py\", line 79, in execute\n return self._execute_with_wrappers(\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~^\n sql, params, many=False, executor=self._execute\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/backends/utils.py\", line 92, in _execute_with_wrappers\n return executor(sql, params, many, context)\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/backends/utils.py\", line 100, in _execute\n with self.db.wrap_database_errors:\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/utils.py\", line 91, in __exit__\n raise dj_exc_value.with_traceback(traceback) from exc_value\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/django/db/backends/utils.py\", line 105, in _execute\n return self.cursor.execute(sql, params)\n ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\n File \"\u003crepo\u003e/.venv/lib/python3.14/site-packages/psycopg/cursor.py\", line 117, in execute\n raise ex.with_traceback(None)\ndjango.db.utils.DataError: value too long for type character varying(255)\n",
"state": {
"blog_comment": [
{
"author_id": 1,
"body": "Second café",
"created_at": "2024-02-01T00:00:00Z",
"id": 2,
"post_id": 1
},
{
"author_id": 2,
"body": "First",
"created_at": "2024-02-01T00:00:00Z",
"id": 1,
"post_id": 1
},
{
"author_id": 3,
"body": "Draft comment",
"created_at": "2024-02-02T00:00:00Z",
"id": 3,
"post_id": 2
}
],
"blog_comment_sequence": {
"is_called": true,
"last_value": 3
},
"blog_post": [
{
"author_id": 1,
"body": "A body with 100% and under_score and café",
"created_at": "2024-01-01T00:00:00Z",
"id": 1,
"is_published": true,
"title": "Hello Python",
"updated_at": "2024-01-01T00:00:00Z",
"view_count": 7
},
{
"author_id": 1,
"body": "python hidden",
"created_at": "2024-01-02T00:00:00Z",
"id": 2,
"is_published": false,
"title": "Secret draft",
"updated_at": "2024-01-02T00:00:00Z",
"view_count": 0
},
{
"author_id": 2,
"body": "PYTHON and backslash \\\\",
"created_at": "2024-01-03T00:00:00Z",
"id": 3,
"is_published": true,
"title": "Unicode café 🚀",
"updated_at": "2024-01-03T00:00:00Z",
"view_count": 2
},
{
"author_id": 3,
"body": "unrelated content",
"created_at": "2024-01-03T00:00:00Z",
"id": 4,
"is_published": true,
"title": "Tied date",
"updated_at": "2024-01-03T00:00:00Z",
"view_count": 0
}
],
"blog_post_sequence": {
"is_called": true,
"last_value": 4
},
"blog_post_tags": [
{
"id": 1,
"post_id": 1,
"tag_id": 2
},
{
"id": 2,
"post_id": 1,
"tag_id": 1
},
{
"id": 3,
"post_id": 2,
"tag_id": 1
},
{
"id": 4,
"post_id": 3,
"tag_id": 1
}
],
"blog_post_tags_sequence": {
"is_called": true,
"last_value": 4
},
"blog_tag": [
{
"created_at": "2024-01-01T00:00:00Z",
"id": 1,
"name": "Python",
"slug": "python"
},
{
"created_at": "2024-01-01T00:00:00Z",
"id": 2,
"name": "Django",
"slug": "django"
},
{
"created_at": "2024-01-01T00:00:00Z",
"id": 3,
"name": "Empty",
"slug": "empty"
}
],
"blog_tag_sequence": {
"is_called": true,
"last_value": 3
},
"blog_user": [
{
"bio": "",
"created_at": "2024-01-01T00:00:00Z",
"display_name": "Bob",
"email": "duplicate@example.com",
"id": 2,
"username": "bob"
},
{
"bio": "",
"created_at": "2024-01-01T00:00:00Z",
"display_name": "Carol",
"email": "duplicate@example.com",
"id": 3,
"username": "carol"
},
{
"bio": "Author biography",
"created_at": "2024-01-01T00:00:00Z",
"display_name": "Alice",
"email": "alice@example.com",
"id": 1,
"username": "alice"
}
],
"blog_user_sequence": {
"is_called": true,
"last_value": 3
}
}
}