Предположим, у меня есть 3 модели: город, область, вход.
В каждом городе есть несколько областей, и каждая область может иметь несколько записей, НО для "сейчас", может быть будет только одна активная запись, и она будет показана. Итак по логике:
Обратите внимание, что в каждом городе, районе, записи будет использоваться переменная слага для класса соответствующей модели
Формат будет такой:
www.mysite.com/<slug of city>/<slug of area>/<slug of entry>
www.mysite.com/mycity/myarea/
-> будет отображать запись, привязанную к этой области и активную (это можно определить с помощью функции active_entry
области).
Но пользователи могут просматривать некоторые старые записи, такие как:
www.mysite.com/mycity/myarea/some-old-entry-that-is-no-longer-active
Я написал функции get_absolute_url, прочитав книгу «Практическое Django Projects 2nd Edition», но теперь я застрял.
У меня есть такие модели:
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})
Пожалуйста, помогите этой бедной душе настроить его URL-адрес.
Спасибо