entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Django - Bad Request (400)

Hola,

He instalado django en mi servidor de Dreamhost. Parecía que funcionaba bien pero a la hora de crear un nuevo usuario desde el admin recibía un error. Investigando debía de cambiar el valor

DEBUG = True

por

DEBUG = False 

en el 'setting.py' del proyecto.

Al realizar este cambio recibo un "Bad Request(400)".

Investigando un poco mas parece que el valor de

ALLOWED_HOSTS = []

había que sustituirlo por

ALLOWED_HOSTS = [*]

Pero como podéis comprobar en la url django.egoitzgonzalez.com el problema sigue.

Alguna idea?

Saludos!

0voto

carlossevi comentado

Supongo que será un error al trascribirlo a la pregunta, pero el ALLOWED_HOSTS tiene un error:

# No correcto:
ALLOWED_HOSTS = [*]
# Correcto:
ALLOWED_HOSTS = ['*']

0voto

egoitz_gonzalez comentado

No era un error, no me di cuenta de ese detalle. Pero de todas formas tampoco funciona.

Una vez cambiado el setting.py ejecuto

touch /tmp/restart.txt

Siguiendo las indicaciones de la wiki de dreamhost (http://wiki.dreamhost.com/Django)

Pero no pasa nada. Sigue el error 400

0voto

egoitz_gonzalez comentado

Ahora recibo el siguiente error:

Not Found

The requested URL / was not found on this server.

Puedo entrar al admin pero al crear un nuevo usuario recibo

Server Error (500)

0voto

white comentado

Como tienes definidas tus rutas en urls.py?

sobre la respuesta con código 500, podrías definir Debug a True para saber que tipo de error te esta dando?

0voto

egoitz_gonzalez comentado

Este es el urls.py

  GNU nano 2.2.6                                                           File: urls.py                                                                                                                             

"""blogdjango URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.8/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Add an import:  from blog import urls as blog_urls
    2. Add a URL to urlpatterns:  url(r'^blog/', include(blog_urls))
"""
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
]

Voy a colocar debug a 'true'. Lo puse en false porque a la hora de crear un usuario recibía un error.

0voto

egoitz_gonzalez comentado

Ahora que debug esta en "True" a la hora de crear un usuario recibo el siguiente error.

IntegrityError at /admin/auth/user/add/
(1048, "Column 'last_login' cannot be null")
Request Method: POST
Request URL:    http://www.django.egoitzgonzalez.com/admin/auth/user/add/
Django Version: 1.8.5
Exception Type: IntegrityError
Exception Value:    
(1048, "Column 'last_login' cannot be null")
Exception Location: /home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/site-packages/MySQLdb/connections.py in defaulterrorhandler, line 36
Python Executable:  /home/egoitzgonzalezco/django.egoitzgonzalez.com/env/bin/python
Python Version: 2.7.3
Python Path:    
['/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/site-packages',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/site-packages/django',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/bin',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com',
 '/usr/local/dh/passenger/helper-scripts',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/site-packages/pip-1.1-py2.7.egg',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/plat-linux2',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/lib-tk',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/lib-old',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/lib/python2.7/site-packages',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com',
 '/home/egoitzgonzalezco/django.egoitzgonzalez.com/blogdjango']
Server time:    Tue, 27 Oct 2015 11:44:58 +0000

1 Respuesta

1voto

white Puntos75880

El error The requested URL / was not found on this server. se debe a que no tienes una ruta para / es decir para la expresión: r'^$'

intenta definirla:

urlpatterns = [
    url(r'^$', include('home.urls')),
    url(r'^admin/', include(admin.site.urls)),
]

donde home vendría siendo tu aplicación de inicio

/root/home/urls.py:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

/root/home/views.py:

from django.http.response import HttpResponse

def index (request):
    return HttpResponse('index here...')

root
-- home
------ __init__.py
------ urls.py
------ views.py

o puedes definir la vista de esta forma:

from tuapp import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^admin/', include(admin.site.urls)),
]

root/tuapp/views.py:

def index (request):
    return HttpResponse('index from tuapp...')

sobre el segundo error, podrías intentar con el comando:

python manage.py syncdb

ó

python manage.py migrate

podría estar relacionado con: https://code.djangoproject.com/ticket/24679

PD: que motor usas para tu base de datos?

0voto

egoitz_gonzalez comentado

Los errores me dan con Django recién instalado. Sin tocar nada mas. No sé si es relevante, porque soy nuevo en esto. ¿Debería de funcionar?

0voto

white comentado

Cuando Debug va en True, la ruta / es una vista por defecto del framework, no es tanto un error, sino más bien que no definiste una ruta por defecto.

El segundo parece ser más un cambio en Django 1.8, el campo last_login puede ser nulo a partir de esta versión. Posiblemente tengas una migración antigua. con el comando que te propuse debería solventarse.

0voto

egoitz_gonzalez comentado

Con el comando

python manage.py syncdb

Recibo estos errores:


(env)[bath]$ python manage.py syncdb
/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
  warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)

Operations to perform:
  Synchronize unmigrated apps: staticfiles, messages
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial...Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line
    utility.execute()
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 25, in handle
    call_command("migrate", **options)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 120, in call_command
    return command.execute(*args, **defaults)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 222, in handle
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 110, in migrate
    self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/migration.py", line 115, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/operations/models.py", line 59, in database_forwards
    schema_editor.create_model(model)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 286, in create_model
    self.execute(sql, params or None)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 111, in execute
    cursor.execute(sql, params)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.OperationalError: (1050, "Table 'django_content_type' already exists")

0voto

egoitz_gonzalez comentado

Y con

python manage.py migrate

Este otro

[bath]$ python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
[bath]$ source $HOME/django.egoitzgonzalez.com/env/bin/activate
(env)[bath]$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, messages
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial...Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line
    utility.execute()
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 222, in handle
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 110, in migrate
    self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/migration.py", line 115, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/migrations/operations/models.py", line 59, in database_forwards
    schema_editor.create_model(model)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 286, in create_model
    self.execute(sql, params or None)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 111, in execute
    cursor.execute(sql, params)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/home/egoitzgonzalezco/django.egoitzgonzalez.com/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.OperationalError: (1050, "Table 'django_content_type' already exists")

El motor que uso es MySQL. Al parecer es el que soporta mi hosting. A la hora de seguir la wiki de Dreamhost me pedía que usase ese.

0voto

white comentado

parece que no tienes django instalado globalmente, intenta con:

python2.7 manage.py migrate

podrías intentar instalandolo tambíen:

pip install django

PD: ahora vi que no resetea la base de datos, intenta con:

python2.7 manage.py flush
python2.7 manage.py migrate

Esto resetea la base de datos y hace las migraciones respectivas.

0voto

egoitz_gonzalez comentado

Parece que sigo recibiendo el mismo error. :-(

0voto

white comentado

usaste los comandos desde virtualenv?

intentemos esto, puedes eliminar las tablas de tu base de datos manualmente? si es así elimina todas.

intenta luego de este proceso el comando:

source $HOME/django.egoitzgonzalez.com/env/bin/activate
python manage.py migrate

PD: sólo por curiosidad por qué elegiste la version beta (1.9) como tu versión para producción?

0voto

egoitz_gonzalez comentado

Tampoco me deja acceder al phpmyadmin para poder eliminar la BD http://www.django.egoitzgonzalez.com/dh_phpmyadmin/mysql.django.egoitzgonzalez.com/

0voto

white comentado

Parece más bien un problema con tu host, intenta entonces por linea de comandos.

python manage.py dbshell

SET FOREIGN_KEY_CHECKS = 0; DROP TABLE `auth_group`, `auth_group_permissions`, `auth_permission`, `auth_user`, `auth_user_groups`, `auth_user_user_permissions`, `django_admin_log`, `django_content_type`, `django_migrations`, `django_session`; SET FOREIGN_KEY_CHECKS = 1;

CTRL + C

python manage.py migrate

0voto

egoitz_gonzalez comentado

Esto funciono. Como es evidente se me elimino el superusuario que lo cree con el siguiente comando.

python manage.py createsuperuser

Ahora parece que ya funciona todo correctamente excepto el phpmyadmin que comento en el anterior comentario pero eso tal vez sea mejor debatirlo en otro post para no mezclar temas.

Muchas gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta