'을 통해'사용 나는 두 가지 모델이있다.중복 결과
내 모델에서 다음과 같은 표현을 사용하고 있습니다 :
class User(models.Model):
name = models.CharField(max_length=200, null=False, blank=False, default=None)
articles = models.ManyToManyField(Article, null=True, blank=True, default=None, through='Tag')
class Article(models.Model):
url = models.URLField(unique=True)
class Tag(models.Model):
name = models.CharField(max_length=200, null=False, blank=False, default=None)
article = models.ForeignKey(Article)
user = models.ForeignKey(User)
을 지금, 나는 별도로 사용자와 기사를 추가 할 수 있습니다. 그런 다음 사용자를 기사에 연결할 수 있습니다. <user 1>
및 <article 1>
만 있다고 가정 해보십시오.
Tag1
<user 1> ---> <article 1>
Tag2
<user 1> ---> <article 1>
난 여전히 한 명의 사용자 만, 단 하나 개의 기사를 가지고 있지만,이 태그를 연결하는 : 나는 (관리자를 통해 수행) 두 가지 태그를 만들 수 있습니다. user1.article.all()을 쿼리 할 때 하나의 기사 만 결과로 나타납니다.
예상되는 동작 : 나는 장고 (1.7.1 및 1.7.2)를 조회하고 경우
user = User.objects.get(pk=1)
print user.article.all()
[<Article: 1>, <Article: 1>]
사람이 버그인지 알거나
user = User.objects.get(pk=1)
print user.article.all()
[<Article: 1>]
관찰 된 행동 나쁜 방법? 이것이 정상적인 경우 어떻게 중복을 쉽게 제거 할 수 있습니까? https://code.djangoproject.com/ticket/24079#ticket
슈퍼, 두 번째 질문을 해결합니다. 그러나 그 문제에 관한 많은 문서 2 장의 주석은 그러한 종류의 문제에 도움이 될 것입니다. – Tanzaho