보통 ManytoManyField
으로 이것을 달성 할 수 있는지 확실하지 않습니다. 중간 모델을 명시 적으로 정의 할 수 있습니다.
nb : 테스트되지 않은 코드! 다음과 같이
class Person(models.Model)
name = models.CharField(max_length=30)
class FollowerRelationship(models.Model)
follower = models.ForeignKey(Person, related_name = following_set)
following = models.ForeignKey(Person, related_name = follower_set)
그런 다음 쉘에서 다음과 같은 관계를 만들 수 있습니다.
# Create Person objects
>>> a = Person(name="Alice")
>>> a.save()
>>> b = Person(name="Bob")
>>> b.save()
>>> c = Person(name="Chris")
>>> c.save()
# Let Alice follow Chris and Bob
>>> FollowerRelationship.objects.create(follower=a, following=c)
>>> FollowerRelationship.objects.create(follower=a, following=b)
당신은 라인, 조인 테이블의 ID로 주문 앨리스는 추종자
FollowerRelationship
객체의 검색어 세트를 만들 수 있습니다
:
>>> qs = FollowerRelationship.objects.filter(follower=a).order_by('id')
>>> [fr.following for fr in qs]
참고가 FollowerRelationship
을 통해 루프가 관계에있는 '따라야'Person
을 얻을 수 있습니다.
Django 문서에서 Extra fields on many-to-many relationships을보고 싶을 수도 있습니다.이 문서는 다 대다 관계에서 중간 모델을 지정하는 방법을 설명합니다.
재미 있고 이상한 질문입니다. ManyToMany가 join을하기 위해 사용하는 중간 테이블의 id 필드는 흥미 롭기 때문에 ...? –
일부 코드를 게시하십시오. – czarchaic
@peter 그 테이블에있는 이드는 관계의 순서를 보여 주어 그가 "당신이 최근에 따라 갔다 :"생각을 할 수 있다고 생각합니다. –