with tutorial readthedocs latest auth allauth django django-views django-allauth

tutorial - Django ''No such table:'' para el perfil de usuario personalizado, ¿por qué?



django rest auth (2)

En primer lugar, si funcionó antes, no puedo explicar por qué ya no lo es. Debería inspeccionar el archivo sqlite y ver si la tabla está allí. (El archivo generalmente se encuentra en la raíz como db.sqlite3 , y se puede abrir con cualquier navegador estándar de sqlite)

Mencionaste que has estado ejecutando migrar, ¿pero ya está la migración real?

Ejecute python manage.py makemigrations primero si no lo hizo. Si es necesario, verifique el archivo de migración en sí.

También está el comando python manage.py inspectdb que podría darle una idea de los modelos que está utilizando.

Si aún no hay nada, puede, por supuesto, comenzar de cero. Probablemente me he perdido un atajo en alguna parte, pero yo:

  1. Cree una copia de los datos que necesita conservar ( python manage.py dumpdata --indent=4 <appname> ) ( python manage.py dumpdata --indent=4 <appname> en accesorios)
  2. eliminar archivos de migraciones
  3. eliminar db.sqlite3
  4. ejecutar python manage.py makemigrations
  5. ejecutar python manage.py migrate
  6. utilice python manage.py loaddata <fixture-name> para volver a cargar los datos antiguos

Me estoy arrancando los pelos tratando de descubrir por qué mi vista de perfil de usuario personalizado ya no funciona. Estoy usando django-allauth y he personalizado mi perfil de usuario creando un modelo con el campo de uno a uno para el usuario. Sin embargo, mi opinión es arrojar el error:

OperationalError at /profile/ no such table: user_profile Request Method: GET Request URL: http://localhost:8000/profile/ Django Version: 1.7.4 Exception Type: OperationalError Exception Value: no such table: user_profile Exception Location: /usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/base.py in execute, line 485 Python Executable: /usr/bin/python Python Version: 2.7.6

Mi models.py con el perfil de usuario personalizado se ve así:

from django.contrib.auth.models import User from django.db.models.signals import post_save from django.db import models from allauth.account.models import EmailAddress class UserProfile(models.Model): user = models.OneToOneField(User, related_name=''profile'') # user visible settings stop_reminders = models.BooleanField ( default=False, help_text = ''Flag if user wants reminders not to be sent.'' ) stop_all_email = models.BooleanField ( default=False, help_text = ''Flag if user wants no email to be sent.'' ) # hidden settings is_premium = models.BooleanField ( default=False, help_text = ''Flag if user has the premium service.'' ) def __unicode__(self): return "{}''s profile".format(self.user.username) class Meta: db_table = ''user_profile'' def account_verified(self): if self.user.is_authenticated: result = EmailAddress.objects.filter(email=self.user.email) if len(result): return result[0].verified return False #User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0]) def create_user_profile(sender, instance, created, **kwargs): if created: profile, created = UserProfile.objects.get_or_create(user=instance) post_save.connect(create_user_profile, sender=User)

Mi vista, que es un lugar para establecer la configuración del perfil de usuario, se ve así:

@login_required def user_settings (request): """ User settings view, handles changing of user settings and entry distribution (eventually) """ if request.method == ''POST'': # If the form has been submitted... form = UserProfileForm(request.POST, instance=request.user.profile) # A form bound to the POST data if form.is_valid(): # All validation rules pass form.save () return render_to_response(''sm/profile_update_success.html'', {}, context_instance=RequestContext(request)) else: # create unbound form with initial values generated # from the user''s profile form = UserProfileForm (instance=request.user.profile) return render ( request, ''profile.html'', { ''form'': form, } )

Hasta hace poco, esto funcionaba bien, y no estoy seguro de qué ha cambiado para que se detenga. ¿Alguien puede explicar por favor?

Estoy usando Django-1.7.4 y django-allauth-0.19.1. Para la depuración estoy usando sqllite, que he intentado crear usando python manage.py migrate y python manage.py syncdb .


Gahh, la respuesta fue que había comentado la entrada de mi aplicación principal de INSTALLED_APPS . Que es tonto