GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Django: invalid `VectorField` input raises `ValueError` / `DataError` instead of a validation error · Issue #171 · pgvector/pgvector-python Open DescriptionHi @ankane, thanks for pgvector-python! When a Django's custom fields docs say
Reproductionimport django from django.conf import settings settings.configure( DATABASES={'default': {'ENGINE': 'django.db.backends.postgresql', 'NAME': 'pgvector_python_test'}}, INSTALLED_APPS=[], ) django.setup() from django import forms from django.db import connection, models from pgvector.django import VectorField from rest_framework import serializers class Item(models.Model): embedding = VectorField(dimensions=3) class Meta: app_label = 'repro' with connection.cursor() as cursor: cursor.execute('CREATE EXTENSION IF NOT EXISTS vector') cursor.execute('DROP TABLE IF EXISTS repro_item') with connection.schema_editor() as editor: editor.create_model(Item) class ItemForm(forms.ModelForm): class Meta: model = Item fields = ['embedding'] class ItemSerializer(serializers.ModelSerializer): class Meta: model = Item fields = ['embedding'] def check(name, fn): try: print(f'{name}: {fn()}') except Exception as e: print(f'{name}: {type(e).__name__}: {e}') def form(value): f = ItemForm(data={'embedding': value}) if not f.is_valid(): return f'invalid {f.errors.get_json_data()}' f.save() return 'saved' def serializer(value): s = ItemSerializer(data={'embedding': value}) if not s.is_valid(): return f'invalid {s.errors}' s.save() return 'saved' check('form [1,2,x]', lambda: form('[1,2,x]')) check('form [1,2]', lambda: form('[1,2]')) check('serializer [1, 2, "x"]', lambda: serializer([1, 2, 'x'])) check('serializer [1, 2]', lambda: serializer([1, 2])) Output: Traceback for the first case: ExpectedAll four cases come back as invalid with a field error, and nothing reaches the database. For the dimension mismatch, the field already knows Versions
Activity
MetadataMetadataAssigneesLabelsNo labels TypeProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |