Skip to content

Commit 60fcb89

Browse files
committed
A couple of changes for better relationship handling
1 parent 74cc2ba commit 60fcb89

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

Diff for: api.py

+19-7
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111

1212

1313
class UnionResource(ModelResource):
14-
# clubs = fields.ToManyField('handball.api.ClubResource', 'clubs', full=True)
15-
managers = fields.ToManyField('handball.api.PersonResource', 'managers')
16-
1714
class Meta:
1815
queryset = Union.objects.all()
1916
allowed_methods = ['get']
@@ -30,7 +27,7 @@ def obj_create(self, bundle, request=None, **kwargs):
3027

3128

3229
class DistrictResource(ModelResource):
33-
union = fields.ForeignKey(UnionResource, 'union', full=True)
30+
union = fields.ForeignKey(UnionResource, 'union')
3431

3532
class Meta:
3633
queryset = District.objects.all()
@@ -57,6 +54,7 @@ class Meta:
5754
class ClubResource(ModelResource):
5855
district = fields.ForeignKey(DistrictResource, 'district', full=True)
5956
# teams = fields.ToManyField('handball.api.TeamResource', 'teams')
57+
managers = fields.ToManyField('handball.api.PersonResource', 'managers')
6058

6159
class Meta:
6260
queryset = Club.objects.all()
@@ -75,8 +73,9 @@ def obj_create(self, bundle, request=None, **kwargs):
7573

7674
class TeamResource(ModelResource):
7775
club = fields.ForeignKey(ClubResource, 'club', full=True)
78-
league = fields.ForeignKey(LeagueResource, 'league', full=True)
79-
players = fields.ManyToManyField('handball.api.PersonResource', 'players', full=True)
76+
players = fields.ManyToManyField('handball.api.PersonResource', 'players')
77+
coaches = fields.ManyToManyField('handball.api.PersonResource', 'coaches')
78+
managers = fields.ManyToManyField('handball.api.PersonResource', 'managers')
8079

8180
class Meta:
8281
queryset = Team.objects.all()
@@ -97,7 +96,10 @@ def dehydrate(self, bundle):
9796
class PersonResource(ModelResource):
9897
user = fields.OneToOneField(UserResource, 'user', blank=True, null=True)
9998
clubs = fields.ManyToManyField(ClubResource, 'clubs')
100-
# teams = fields.ManyToManyField(TeamResource, 'teams')
99+
clubs_managed = fields.ManyToManyField(ClubResource, 'clubs_managed', blank=True)
100+
teams = fields.ManyToManyField(TeamResource, 'teams', blank=True)
101+
teams_managed = fields.ManyToManyField(TeamResource, 'teams_managed', blank=True)
102+
teams_coached = fields.ManyToManyField(TeamResource, 'teams_coached', blank=True)
101103

102104
class Meta:
103105
queryset = Person.objects.all()
@@ -106,12 +108,22 @@ class Meta:
106108
excludes = ['activation_key', 'key_expires']
107109
filtering = {
108110
'user': ALL_WITH_RELATIONS,
111+
'clubs': ALL_WITH_RELATIONS,
112+
'clubs_managed': ALL_WITH_RELATIONS,
113+
'teams': ALL_WITH_RELATIONS,
114+
'teams_managed': ALL_WITH_RELATIONS,
115+
'teams_coached': ALL_WITH_RELATIONS,
109116
'first_name': ['exact'],
110117
'last_name': ['exact']
111118
}
112119

113120
def dehydrate(self, bundle):
114121
bundle.data['display_name'] = str(bundle.obj)
122+
# del bundle.data['clubs']
123+
del bundle.data['clubs_managed']
124+
del bundle.data['teams']
125+
del bundle.data['teams_managed']
126+
del bundle.data['teams_coached']
115127
return bundle
116128

117129

0 commit comments

Comments
 (0)