간결한 질문 : 외부 테이블에 장고에서 many-to-many 관계 (1.5) 모델링의 장점과 단점이를 사용하지 않고 무엇
~ 매개 변수?이유
세부 사항 :
말, 나는 사용자 정의 사용자 모델 USERPROFILE을 가지고 있고 나는 다음 관계를 구현하기 위해, 예를 들어, 같은 모델에 M2M 관계를 정의 할 수 있습니다. 아래 켰을 때, 나는 USERPROFILE 모델에 M2M 필드를 추가한다이 경우
class Relationship(models.Model):
"""Relationship model"""
from_user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='from_users')
to_user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='to_users')
created = models.DateTimeField(auto_now_add=True)
is_blocked = models.BooleanField(default=False)
objects = RelationshipManager()
: 저는 외부 테이블 (모델) like so를 정의 할 수 있습니다? 그렇다면 왜? 사용자 간의 모든 관계를 처리 할 수있는 것은 관계 모델이 맞습니까?
class UserProfile(AbstractBaseUser, PermissionsMixin):
user_following = models.ManyToManyField('self', through=Relationship, symmetrical=False, related_name='followed')
그래, 난이 알고 확인, 질문은 : 어떻게 내가 그것을 연결하지 않고 이미 M2M (관계)를 정의하는 외부 테이블을 사용하는 경우 m2m 필드와 "through"매개 변수? 장점 단점? – Leonardo
나는 그렇게해서는 안된다고 생각합니다. 당신이 relashiohship을 위해 만들어진 테이블을 정의한다면, 장고에 그것을 사용하도록 알려줘야한다. 그렇지 않다면, 장고는 관계를 만들기 위해 장고를 사용해야한다는 것을 어떻게 알았습니까? 귀하의 질문에 대답하기 위해, 나는 아무런 이점도 보지 못했지만 (아마 있을지 모르지만 ^^), 단점 만 : M2M을 위해 만들어진 모든 장고 메커니즘은 자동으로 작동하지 않습니다. –