0

Assume I have 3 Models: City, Area, Entry.

Each city has several Areas and each area can have several entries BUT for "now", there can be will be only one active Entry and it will be shown. So in logic:

Note that each city, area, entry will be using slug variable of related model class

Format will be in such:

www.mysite.com/<slug of city>/<slug of area>/<slug of entry>

www.mysite.com/mycity/myarea/ -> will be displaying an Entry that is bound to that Area AND active (this can be detected by using Area's active_entry function).

But users can view some old Entries such as:

www.mysite.com/mycity/myarea/some-old-entry-that-is-no-longer-active

I have written get_absolute_url functions by reading the "Practical Django Projects 2nd Edition" book but now I am stucked.

I have such models:

from django.db import models

class Entry(models.Model):
    area = models.ForeignKey('Area',verbose_name="The area that this entry belongs to")
    slug = slug = models.SlugField(unique=True) # this will be auto populated via admin panel, from title
    title = baslik = models.CharField()
    content = models.TextField()
    start_time = models.DateTimeField()#start time for this entry.
    end_time = models.DateTimeField()#end time for this entry.

    @models.permalink
    def get_absolute_url(self):
        return ("entry.detail",(),{"city":self.area.city.slug,"area":self.area.slug,"entry":self.slug})



class Area(models.Model):
    city = models.ForeignKey(verbose_name="city that this area belongs to")
    name = models.CharField(max_length=30)
    slug = models.SlugField(unique=True)# this will be auto populated via admin panel, from name

    @models.permalink
    def get_absolute_url(self):
        return ("bolge.detay",(),{"city":self.city.slug,"area":self.slug})

    def active_entry(self):
        from datetime import datetime, date, time
        now = datetime.now()
        try:
            return Entry.objects.get(area__exact=self,start_time__lte=now,end_time__gte=now)
        except Entry.DoesNotExist:
            return False



class City(models.Model):
    name =models.CharField(max_length=30)
    slug = models.SlugField(unique=True) # this will be auto populated via admin panel, from name
    @models.permalink
    def get_absolute_url(self):
        return ("city.detail",(),{"city":self.slug})

Please help this poor soul to configure his url configuration.

Thanks

2
  • Stuck with what? How to write the urls.py patterns? What do you want you URL's to look like? Provide some example URL's and what views they're supposed to trigger. Commented Feb 7, 2010 at 15:11
  • Yes, I am stucked with the url.py configuration. And I have already written url examples that I need. Regards Commented Feb 7, 2010 at 15:14

1 Answer 1

1

It should probably look like something like that:

urlpatterns = patterns('',
    (r'^(?P<city>[a-z-]+)/(?P<area>[a-z-]+)/$', 'yourapp.views.areaview'),
    (r'^(?P<city>[a-z-]+)/(?P<area>[a-z-]+)/(?P<entry>[a-z-]+)/$', 'yourapp.views.entryview'),
)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.