Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 字段';门';应为一个数字,但得到''; 错误: models.py views.py_Django_Postgresql_Django Models_Django Rest Framework_Django Views - Fatal编程技术网

Django 字段';门';应为一个数字,但得到''; 错误: models.py views.py

Django 字段';门';应为一个数字,但得到''; 错误: models.py views.py,django,postgresql,django-models,django-rest-framework,django-views,Django,Postgresql,Django Models,Django Rest Framework,Django Views,使用:Django3.1.7、Python3.6.9、Ajax、Postgresql和DjangoREST框架。我试着做dinamics下拉过滤器。这不是我申请的全部代码。我认为错误就在这里

使用:Django3.1.7、Python3.6.9、Ajax、Postgresql和DjangoREST框架。我试着做dinamics下拉过滤器。这不是我申请的全部代码。我认为错误就在这里<谢谢你的帮助

您的字段
doors
被定义为
IntegerField
,其中
null=False
blank=False
(默认情况下)

因此,以下代码行就是问题所在(为了可读性增加了中断):

.exclude(doors\uu exact='')
抛出错误,因为
整型字段
不能包含字符串,但您正在检查它是否等于空字符串
'
。这是不允许的

只要不在模型的
doors
字段定义中设置
null=True
,则不需要
.exclude(doors\uu isnull=True)


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 ''.
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)
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)
doors = Coche.objects \
    .exclude(doors__isnull=True) \
    .exclude(doors__exact='') \
    .order_by('doors') \
    .values_list('doors').distinct()