2017-12-05 19 views
0

저는 Actor 모델을 사용하여 장고 사용자 모델을 확장하려고하지만 몇 가지 문제가 있습니다.Django OneToOneField 사용자 모델을 확장 할 때 고유하지 않습니다.

내 코드입니다 :

class Actor(models.Model): 
    usuario = models.OneToOneField('auth.User', unique = True, null = True) 

    def __str__(self): 
     return self.usuario.get_full_name() + ' (' + self.usuario.get_username() + ')' 

문제는 일대일 관계가 그래서 서로 다른 두 가지 배우를 작성하고 동일한 사용자로 연관 수있는 고유되지 않는 것입니다.

사용 사례 아이디어 : 사용자 (장고의 사용자 모델)를 만든 다음 액터를 만들고 이전에 만든 사용자와 연결합니다. 두 번째 배우를 만들면 같은 사용자와 관련이있을 수 없습니다.

+1

_ 문제는 일대일 관계가 고유하지 않기 때문에 두 개의 서로 다른 배우를 만들 수 있다는 것입니다. _ 그런 다음 일대일 관계를 사용하지 마십시오. 이것이 정확히 의미하는 바입니다. – scharette

+0

_Two differents 관계를 일대일로 제한하려고 시도 할 때 동일한 사용자와 관련된 액터 (이상) (사용자는 배우 및 부사관과 만 관련됨). –

+0

이것이 일대일 관계입니다. 그것은 * 고유 한 *이며, 배우를 둘 이상의 사용자와 관련시킬 수 없습니다. 네가 할 수 있다고 생각하는 게 뭐야? –

답변

0

ForeignKeyunique=True을 사용하시는 것이 좋습니다.

+0

나는 시도했으나 일대일 관계 : 사용자가 둘 이상의 액터와 관련 될 수있는 동일한 동작을합니다. –