2010-07-09 166 views
0

當我試圖創建擴展的用戶配置文件時,我得到的UserProfile對象是不可訂閱的。我已經搜索瞭解決方案,但'你的對象不是序列'在這裏沒有什麼幫助。下面是我使用的, 'TEMP_DATA' 的功能是從我的登記表中的數據:(Django)對象不可訂閱

def create_user(request):  
    data = request.session['temp_data'] 
    email = data['email'] 
    password1 = data['password1'] 
    userdata = {'email': email, 'password1': password1} 
    backend = request.session['backend'] 
    #create User 
    user = backend.register(request, userdata) 
    data = UserProfile(user=user) 
    data.is_active = False 
    data.first_name = data['first_name'] 
    data.last_name = data['last_name'] 
    (... rest of the fields ...) 
    data.save() 

我的擴展模型:

class UserProfile(InheritedProfile): 
    def upload_path(self, field_attname): 
     filename = hashlib.md5(field_attname).hexdigest()[:4] + "_" + field_attname 
     return settings.MEDIA_ROOT + "/uploads/users/%s" % (filename,) 

    user = models.ForeignKey(User, unique=True, related_name='profile',) 
    first_name = models.CharField(_("Name"), max_length=50, blank=False,) 
    last_name = models.CharField(_("Surname"), max_length=50, blank=False,) 
    street = models.CharField(_("Street"), max_length=50, blank=False,) 
    code = models.CharField(_("Zip code"), max_length=6, blank=False,) 
    city = models.CharField(_("City"), max_length=50, blank=False,) 
    image = models.ImageField(_("Avatar"), upload_to=upload_path, blank=True,) 

而且回溯:

File "/home/rails/site-packages/django/core/handlers/base.py" in get_response 
    92.     response = callback(request, *callback_args, **callback_kwargs) 
File "/home/rails/registration/views.py" in register_new 
    115.  data.first_name = data['first_name'] 

回答

3

data = UserProfile(user=user)重新綁定data。它不能同時是模型和會話數據。

+0

當然,你是對的。謝謝 – muntu 2010-07-09 19:40:41