diff -r 2e0b0af889be -r a04b1e4126c4 thirdparty/google_appengine/lib/django/tests/modeltests/m2m_and_m2o/models.py --- a/thirdparty/google_appengine/lib/django/tests/modeltests/m2m_and_m2o/models.py Sun Sep 06 23:31:53 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -""" -29. Many-to-many and many-to-one relationships to the same table - -Make sure to set ``related_name`` if you use relationships to the same table. -""" - -from django.db import models - -class User(models.Model): - username = models.CharField(maxlength=20) - -class Issue(models.Model): - num = models.IntegerField() - cc = models.ManyToManyField(User, blank=True, related_name='test_issue_cc') - client = models.ForeignKey(User, related_name='test_issue_client') - - def __str__(self): - return str(self.num) - - class Meta: - ordering = ('num',) - - -__test__ = {'API_TESTS':""" ->>> Issue.objects.all() -[] ->>> r = User(username='russell') ->>> r.save() ->>> g = User(username='gustav') ->>> g.save() - ->>> i = Issue(num=1) ->>> i.client = r ->>> i.save() - ->>> i2 = Issue(num=2) ->>> i2.client = r ->>> i2.save() ->>> i2.cc.add(r) - ->>> i3 = Issue(num=3) ->>> i3.client = g ->>> i3.save() ->>> i3.cc.add(r) - ->>> from django.db.models.query import Q - ->>> Issue.objects.filter(client=r.id) -[, ] ->>> Issue.objects.filter(client=g.id) -[] ->>> Issue.objects.filter(cc__id__exact=g.id) -[] ->>> Issue.objects.filter(cc__id__exact=r.id) -[, ] - -# These queries combine results from the m2m and the m2o relationships. -# They're three ways of saying the same thing. ->>> Issue.objects.filter(Q(cc__id__exact=r.id) | Q(client=r.id)) -[, , ] ->>> Issue.objects.filter(cc__id__exact=r.id) | Issue.objects.filter(client=r.id) -[, , ] ->>> Issue.objects.filter(Q(client=r.id) | Q(cc__id__exact=r.id)) -[, , ] -"""}