2016-07-08 2 views
2

Я хотел бы создать модель, чтобы расширить профиль пользователя, моя модель такова:Пользователь OneToOneField в модели

from django.db import models 
from django.contrib.auth.models import User 

class ExtendUser(models.Model): 
    user = models.OneToOneField(User) 
    # 
    phone = models.CharField(max_length = 20) 
    def __unicode__(self): 
     return u"%s" % (self.phone) 
    class Meta: 
     verbose_name_plural = "ExtendUsers" 

в оболочке я стараюсь расширить профиль пользователя таким образом:

u = ExtendUser(user.id, phone) 
u.save() 

но получить модель пустым, а не пользователь user.id пройти эту ошибку:

TypeError: int() argument must be a string or a number, not 'User' django

ответ

3

Вы должны использовать аргументы ключевых слов при создании instan се.

u = ExtendUser(user=user, phone=phone) 

Или, если вы хотите использовать идентификатор вместо пользователя:

u = ExtendUser(user_id=user.id, phone=phone) 
+0

Ok, спасибо! Спаси меня день! :-) – akus

Смежные вопросы