Отношение " " не существует в Django
У меня есть сомнения, что это значит:
relation "clientes" does not exist
LINE 1: select nombre from Clientes where joindate between "2022-02-...
Мне кажется странным, что эта ошибка появляется, поскольку моя модель называется Customers; я только что сделал миграции на heroku, но получаю эту ошибку
В своих представлениях я имею следующее:
def list_clientes(request):
if request.method == 'POST':
fromdate=request.POST.get('fromdate')
todate = request.POST.get('todate')
searchresult=Clientes.objects.raw('select nombre from Clientes where joindate between "'+fromdate+'" and "'+todate+'"')
return render(request,'Clientes/clientes-list.html',{'clientes':searchresult})
else:
displaydata = Clientes.objects.all()
return render(request, 'Clientes/clientes-list.html', {'clientes': displaydata})
models.py
class Clientes(models.Model):
tipo = models.CharField(max_length=200)
nombre = models.CharField(max_length=200)
fecha_registro = models.DateTimeField(default=datetime.now)
def __str__(self):
return f'{self.nombre}'
settings.py
DATABASES = {
'default': {
'ENGINE':'django.db.backends.postgresql_psycopg2',
'NAME':'sistemacarros_db',
'USER':'postgres',
'PASSWORD':'1234',
'HOST':'localhost',
'PORT':'5432',
'OPTIONS':{
'init_command':"SET sql_mode='STRICT_TRANS_TABLES'",
}
}
}
Пожалуйста, используйте Django ORM:
def list_clientes(request):
if request.method == 'POST':
fromdate=request.POST.get('fromdate')
todate = request.POST.get('todate')
searchresult = Clientes.objects.filter(fecha_registro__range=(fromdate, todate))
else:
searchresult = Clientes.objects.all()
return render(request,'Clientes/clientes-list.html',{'clientes':searchresult})
Примечание: [Django-doc]
DateTimeField[Django-doc]. имеетauto_now_add=…параметр [Django-doc] для работы с временными метками. Это позволит автоматически присвоить текущее время при создании объекта, и пометит его как нередактируемый (editable=False), так что что оно не будет отображаться вModelFormпо умолчанию.