2013-08-14 2 views
1

내 데이터베이스에서 두 개의 테이블을 동기화하려고합니다. auth_user (Django에서 제공하는 기본 테이블) 테이블을 사용하여 엔티티 사용자 이름, 전자 메일, 나이 등을 포함하는 다른 테이블 사용자 프로필이있었습니다. 동기화 중에 Foriegn 키를 업데이트하는 방법은 무엇입니까?동기화 중 외래 키 null (오류)

def get_filename(instance,filename): 
    return "upload_files/%s_%s" % (str(time()).replace('.','_'),filename) 

def create_profile(sender, **kwargs): 
    if kwargs["created"]: 
     p = profile(username = kwargs["instance"], email=kwargs["instance"]) 
     p.save() 

models.signals.post_save.connect(create_profile, sender=User) 

class profile(models.Model): 
    username = models.CharField(max_length = 30) 
    email = models.EmailField() 
    age = models.PositiveIntegerField(default='15') 
    picture = models.FileField(upload_to='get_filename') 
    auth_user_id = models.ForeignKey(User) 

여기서 동기화 중 테이블 프로필에는 auth_user_id를 제외한 모든 열이 채워집니다. 오류가 있습니다.

Exception Value: 

(1048, "Column 'auth_user_id_id' cannot be null") 

답변

1

테이블을 변경하고 null을 허용하는 auth_user_id_id 데이터 유형 열을 변경해야합니다. 이 같은

뭔가 : -

ALTER TABLE mytable MODIFY auth_user_id_id int; 

는 nt 데이터 형으로 auth_user_id_id 가정 (열은 기본적으로 널 (NULL))

.