16
我試圖用我自己的UserProfile連接django.contrib.auth用戶,並且當我在網站上時出現'AlreadyRegistered'錯誤。已註冊在/ appname /:模型用戶已註冊
這裏的回溯:
Environment:
Request Method: GET
Request URL: myurl.com/django/appname/
Django Version: 1.4.2
Python Version: 2.6.8
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'polls',
'appname',
'registration',
'django.contrib.humanize')
Installed Middleware:
('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 "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response
101. request.path_info)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in resolve
298. for pattern in self.url_patterns:
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in url_patterns
328. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/lib/python2.6/site-packages/django/core/urlresolvers.py" in urlconf_module
323. self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/var/www/mysite/mysite/urls.py" in <module>
3. admin.autodiscover()
File "/usr/lib/python2.6/site-packages/django/contrib/admin/__init__.py" in autodiscover
29. import_module('%s.admin' % app)
File "/usr/lib/python2.6/site-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/var/www/mysite/appname/admin.py" in <module>
4. admin.site.register(User)
File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py" in register
80. raise AlreadyRegistered('The model %s is already registered' % model.__name__)
Exception Type: AlreadyRegistered at /appname/
Exception Value: The model User is already registered
我敢肯定,從我的應用程序的models.py這個梗,看到這就是我的一個主要方式改變了,我相信。
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
class Tag(models.Model):
pics = models.ManyToManyField('Picture', blank=True)
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
class UserProfile(models.Model):
name = models.CharField(max_length=20)
date_joined = models.DateTimeField('date joined')
auth_user = models.OneToOneField(User)
def __unicode__(self):
return self.name
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
class Picture(models.Model):
name = models.CharField(max_length=100)
pub_date = models.DateTimeField('date published')
tags = models.ManyToManyField('Tag', blank=True)
owner = models.ForeignKey('UserProfile')
content = models.ImageField(upload_to='instaton')
def __unicode__(self):
return self.name
class Comment(models.Model):
content = models.CharField(max_length=500)
date = models.DateTimeField('date commented')
commenter = models.ForeignKey('UserProfile')
pic = models.ForeignKey('Picture')
def __unicode__(self):
return self.content
這也發生了,當我修改我的應用程序使用原始auth.User對象,而不是我的自定義,命名不明的用戶對象。因此我的問題是當它已經註冊時嘗試註冊auth.User對象。刪除註冊(用戶)呼叫固定。 – brodney