【发布时间】:2021-07-20 15:09:19
【问题描述】:
错误:
Traceback (most recent call last):
The above exception (invalid literal for int() with base 10: '') was the direct cause of the following exception:
File "/home/andres/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/andres/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "./wallacar_app/views.py", line 124, in getDoors
doors = Coche.objects.exclude(doors__isnull=True).exclude(doors__exact='').order_by('doors').values_list('doors').distinct()
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/query.py", line 949, in exclude
return self._filter_or_exclude(True, args, kwargs)
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/query.py", line 961, in _filter_or_exclude
clone._filter_or_exclude_inplace(negate, args, kwargs)
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/query.py", line 966, in _filter_or_exclude_inplace
self._query.add_q(~Q(*args, **kwargs))
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1396, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1418, in _add_q
split_subq=split_subq, check_filterable=check_filterable,
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1350, in build_filter
condition = self.build_lookup(lookups, col, value)
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/sql/query.py", line 1196, in build_lookup
lookup = lookup_class(lhs, rhs)
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/lookups.py", line 25, in __init__
self.rhs = self.get_prep_lookup()
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/fields/related_lookups.py", line 117, in get_prep_lookup
self.rhs = target_field.get_prep_value(self.rhs)
File "/home/andres/.local/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 1827, in get_prep_value
) from e
Exception Type: ValueError at /wallacar_app/ajax/doors/
Exception Value: Field 'doors' expected a number but got ''.
models.py
class Coche(models.Model):
doors = models.ForeignKey('CocheDoors', on_delete=models.CASCADE)
class CocheDoors(models.Model):
doors = models.IntegerField(verbose_name="Puertas", primary_key=True, validators=[RegexValidator(regex='^[0-9]{1}$',message="Las puertas solo pueden tener una cifra")])
def __str__(self):
return str(self.doors)
views.py
def getDoors(request):
if request.method == "GET" and request.is_ajax():
doors = Coche.objects.exclude(doors__isnull=True).exclude(doors__exact='').order_by('doors').values_list('doors').distinct()
doors = [i[0] for i in list(doors)]
data = {'doors':doors}
return JsonResponse(data,status=200)
使用:Django 3.1.7、Python 3.6.9、Ajax、Postgresql 和 Django Rest 框架。我正在尝试做动态下拉过滤器。这不是我的应用程序的完整代码。我认为错误就在这里。
感谢您的帮助!
【问题讨论】:
标签: django postgresql django-models django-rest-framework django-views