2012-12-02 5 views
5

Sto usando l'app di registrazione django. Sto cercando di creare un sito web di social networking. Sono un principiante nello sviluppo di siti web. Qui è l'errore che sto ottenendo:Non riesco a creare il profilo utente usando la registrazione django

Ambiente:

metodo di richiesta POST Richiesta URL: 127.0.0.1:8000/accounts/register/

Django Versione: 1.4.2 Python Versione: 2.7.2

Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.humanize', 
'registration_defaults', 
'django.contrib.admin', 
'registration', 
'polls') 
Installed Middleware: 
('django.middleware.csrf.CsrfViewMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware') 


Traceback: 
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/Library/Python/2.7/site-packages/registration/views.py" in register 
    187.    new_user = backend.register(request, **form.cleaned_data) 
File "/Library/Python/2.7/site-packages/registration/backends/default/__init__.py" in register 
    79.                  password, site) 
File "/Library/Python/2.7/site-packages/django/db/transaction.py" in inner 
    209.     return func(*args, **kwargs) 
File "/Library/Python/2.7/site-packages/registration/models.py" in create_inactive_user 
    78.   new_user = User.objects.create_user(username, email, password) 
File "/Library/Python/2.7/site-packages/django/contrib/auth/models.py" in create_user 
    160.   user.save(using=self._db) 
File "/Library/Python/2.7/site-packages/django/db/models/base.py" in save 
    463.   self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "/Library/Python/2.7/site-packages/django/db/models/base.py" in save_base 
    565.     created=(not record_exists), raw=raw, using=using) 
File "/Library/Python/2.7/site-packages/django/dispatch/dispatcher.py" in send 
    172.    response = receiver(signal=self, sender=sender, **named) 
File "/Users/dineshsingh/Desktop/django/mysite/users/models.py" in create_user_profile 
    20.   UserProfile.objects.create(user=instance) 
File "/Library/Python/2.7/site-packages/django/db/models/manager.py" in create 
    137.   return self.get_query_set().create(**kwargs) 
File "/Library/Python/2.7/site-packages/django/db/models/query.py" in create 
    377.   obj.save(force_insert=True, using=self.db) 
File "/Library/Python/2.7/site-packages/django/db/models/base.py" in save 
    463.   self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "/Library/Python/2.7/site-packages/django/db/models/base.py" in save_base 
    551.     result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) 
File "/Library/Python/2.7/site-packages/django/db/models/manager.py" in _insert 
    203.   return insert_query(self.model, objs, fields, **kwargs) 
File "/Library/Python/2.7/site-packages/django/db/models/query.py" in insert_query 
    1593.  return query.get_compiler(using=using).execute_sql(return_id) 
File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 
    910.    cursor.execute(sql, params) 
File "/Library/Python/2.7/site-packages/django/db/backends/util.py" in execute 
    40.    return self.cursor.execute(sql, params) 
File "/Library/Python/2.7/site-packages/django/db/backends/sqlite3/base.py" in execute 
    344.    return Database.Cursor.execute(self, query, params) 

Exception Type: DatabaseError at /accounts/register/ 
Exception Value: no such table: users_userprofile 

Qualsiasi aiuto sarà molto apprezzato.

+0

Ok fare una cosa, verificare manualmente se si dispone di tutta la tabella creata a colpire 'syncdb' o meno. –

+0

Ho controllato e la tabella users_userprofile non è stata creata. L'elenco delle tabelle create è: auth_group, auth_group_permissions, auth_permission, AUTH_USER, auth_user_groups, auth_user_user_permissions, django_admin_log, django_content_type, django_session, django_site, polls_choice, polls_poll, registration_registrationprofile, –

+0

No no, non ci non sarà una tabella chiamata 'users_userprofile'. 'registration_registrationprofile' è la tabella principale qui. –

risposta

5
According to the Error stack, I think you are doing it in the wrong manner. 
It may be that you are creating an app named `users` which is not required here. 

Ecco il processo passo dopo passo come utilizzare django-registration.

Dopo aver installato la registrazione django, è necessario aggiungerlo nel file settings.py per assicurarsi che il nostro motore django lo legga e lo carichi.

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.admin', 
    'registration',  #<--Here I have added 
) 

Ora è necessario aggiungere alcune altre impostazioni nel file settngs.py:

ACCOUNT_ACTIVATION_DAYS = 2 
EMAIL_HOST = 'localhost' 
DEFAULT_FROM_EMAIL = '[email protected]' 
LOGIN_REDIRECT_URL = '/' 

ora aggiornare il file urls.py per inviare tutte le richieste /accounts/ al django-registration app.

from django.conf.urls.defaults import * 
from django.views.generic.simple import direct_to_template 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    ... 
    (r'^accounts/', include('registration.urls')), 
    ... 
) 

Ora è necessario creare alcuni modelli per supportare lo django-registration.

login.html — user login form 
logout.html — shown after a user has logged out 
password_change_form.html — password change form 
password_change_done.html — shown after successful password change 
password_reset_form.html — ask user for email to send password-reset mail to 
password_reset_email.html — template for password-reset mail 
password_reset_done.html — shown after password-reset email has been sent 
password_reset_confirm.html — ask user for new password after reset 
password_reset_complete.html — shown after successful password reset 
registration_form.html — user registration form 
registration_complete.html — shown after a user has registered 
activation_email_subject.txt — subject of activation email 
activation_email.txt — template for activation email 
activate.html — shown after a user has activated his account 

un modello di base che quello che è necessario mettere in questi file possono essere @the-django-registration-git-hub-link

Ora spero si può ottenere in esecuzione.

Pochi più link da verificare. Link 1 Link 2

0

Avete diritto AUTH_PROFILE_MODULE nella tua settings.py?

che sembra che dovrebbe essere:

AUTH_PROFILE_MODULE = 'registration.RegistrationProfile' 
Problemi correlati