I think what you want is something like:

# team URL's
url(
    regex=r'organization/(?P<organization_pk>\d+)/team/',
    view=include('project.teams.urls', namespace='organization-team', 
app_name='team'),
),

# competition team listing - project.competitions.urls
url(
    regex=r'^(?P<competition_pk>\d+)/team/',
    view=include('project.teams.urls', namespace='competition-team', 
app_name='team'),
),

Did you follow the example at 
https://docs.djangoproject.com/en/1.8/topics/http/urls/#id4?

On Sunday, July 26, 2015 at 8:07:06 PM UTC-4, James Schneider wrote:
>
> Hello all,
>
> I have an issue that I've been trying to work around in a generic fashion 
> (so that I'm not repeating myself in views/templates). Let's say I have 
> three models:
>
> # models
> class Organization(models.Model):
>     name = models.CharField(max_length=250, null=False, blank=False, 
> unique=True)
>
>
> class Team(models.Model):
>     organization = models.ForeignKey(Organization, null=False)
>     name = models.CharField(max_length=250)
>
>
> class Competition(models.Model):
>     organization = models.ForeignKey(Organization, null=False)
>     name = models.CharField(max_length=250)
>     teams = models.ManyToManyField(Team, related_name='competitions')
>
>
> And this basic URL structure:
>
> # urls
>
> # organization URL's
> url(
>     regex=r'organization/',
>     view=include(organization_urlpatterns, namespace='organization'),
> ),
>
> # team URL's
> url(
>     regex=r'organization/(?P<organization_pk>\d+)/team/',
>     view=include('project.teams.urls', namespace='team'),
> ),
>
> # competition URL's
> url(
>     regex=r'organization/(?P<organization_pk>\d+)/competition/',
>     view=include('project.competitions.urls', namespace='competition'),
> ),
>
>
> # competition team listing - project.competitions.urls
> url(
>     regex=r'^(?P<competition_pk>\d+)/team/',
>     view=include('project.teams.urls', namespace='team'),
> ),
>
>
> In this (simplified version of my) application, a Team is a member of an 
> Organization. Competitions are created within the Organization, and will 
> have one or more Teams associated with them. Teams can be associated with 
> multiple Competitions, but not with multiple Organizations.
>
> Focusing on Teams specifically, there are two URL's/views that can be used 
> to view a Team. One from the perspective of an Organizatoin (where you can 
> see all of the teams associated with an Organization), and one within the 
> context of a Competition, where you can see a list of Teams filtered 
> specifically for that Competition.
>
> Here's my dilemma. I need to generate various links to get to other parts 
> of the application, but if the user is working within the 'context' of a 
> competition (adding/removing teams, etc.), then I need the links for 
> objects to be relative to the Competition that they are working on. For 
> example, a link to 'list all teams' in the Organization context should list 
> all of the teams within an Organization, but should be limited to the 
> associated teams in a Competition context (using the term context 
> generally, not referring to a template context). 
>
> Normally I would use something like get_absolute_url() on the model, but 
> the model object has no concept of the 'context' of where/how it is being 
> modified, so get_absolute_url() would unconditionally return the URL as if 
> it were being viewed at an Organizational level, meaning that all of the 
> links would take the user out of the context where they were expecting, and 
> force them to navigate back into it.
>
> I have several other models that need to follow a similar URL scheme, so 
> something generic would be appreciated.
>
> I have a sneaking suspicion that utilizing app_name within the URL's could 
> be beneficial, but I can't seem to grasp the concept of how to properly use 
> an app_name with URL's, and have it apply to my situation (I'm already 
> using instance namepaces, which have been working out peachy so far). It'd 
> be nice to just have 'team:create' as the namespace and have Django 
> automagically determine whether or not it should stay within the 
> Comeptition context. The other wrinkle in this is that any operations 
> performed in the Competition context currently require an extra kwarg 
> (competition_pk) to specify what Competition is in use, whereas both URL's 
> are already aware of the Organization (organization_pk). I'm open to 
> reworking the URL structure if someone can point me in the right direction 
> and that is the only hurdle.
>
> What URL resolution strategies would be appropriate in this situation? 
>
> Thank you in advance,
>
> -James
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/f5be354b-aa63-407d-9cbf-b5c0539b4ae6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to