나는 두 개의 클래스를 가지고 있는데, 하나는 수퍼 클래스 다. 본질적으로 두 클래스는 트리의 구체적인 클래스입니다. 하나는 잎이고, 하나는 가지입니다. 수퍼 클래스에 정의 된 속성을 공유합니다.자기 참조 외래 키가있는 django의 서브 클래스/프록시를 올바르게 사용합니까?
아래 클래스 중 어느 것도 완료되지 않았습니다. 나는 수퍼 클래스 추상과 서브 클래스 프록시를 만들려고 노력했다. 다행히도 아래 코드는 제가 성취하고자하는 것을 설명합니다.
이
이는 '잎'class User(Owner):
pass
이것은 '지점'이다 인 '슈퍼 클래스'
class Owner(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class Meta:
abstract=True
입니다.
class Group(Owner):
head = models.ForeignKey(User)
members = models.ManyToManyField(Owner,through='Membership')
사용자가 회원별로 그룹에 속할 수있는 방법을 보여줍니다.
class Membership(models.Model):
date_joined = models.DateField()
user = models.ForeignKey(Owner)
group = models.ForeignKey(Group)
제한 내 각 사용자가 많은 그룹 (링커 Membership
통해) 속할 수있다. 각 그룹은 단일 그룹의 구성원이 될 수 있습니다.
사용자로, 그리고 그룹 구성원 모두에서 소유자를 참조하기 때문에 실패합니다. 자바에서 제네릭으로 해결할 수있는 일종의 것 같지만 여기서 도움이되지는 않을 것입니다.
에 대해 사용 된 것으로 보았지만 너무 복잡해 보입니다. 내가 잘못? 필자는 그러한 패러다임을 어떻게 적용 할지를 알 수 없다. 나는 또한 this 질문을 찾았지만 여전히 구현되어야하는 방법에 대해 확신하지 못했습니다.
또한이 질문은 27,000,000입니다. 무언가 승리합니까? – Pureferret
제가 할 수있는 최선은 upvote입니다. – dgel