Supposons que j'ai 3 modèles: Ville, Zone, Entrée.Configuration de l'URL de Django
Chaque ville a plusieurs zones et chaque zone peut avoir plusieurs entrées MAIS pour "maintenant", il ne peut y avoir qu'une seule entrée active et elle sera affichée. Donc, dans la logique:
Notez que chaque ville, zone, entrée utilisera la variable slug de classe modèle associé
Format sera dans un tel:
www.mysite.com/<slug of city>/<slug of area>/<slug of entry>
www.mysite.com/mycity/myarea/
-> exposerons une entrée Cela est lié à cette zone ET active (ceci peut être détecté en utilisant la fonction active_entry
de Area).
Mais les utilisateurs peuvent voir des anciennes entrées telles que:
www.mysite.com/mycity/myarea/some-old-entry-that-is-no-longer-active
J'ai écrit les fonctions de get_absolute_url en lisant le livre « pratique Projets Django 2nd Edition », mais maintenant je suis stucked.
J'ai ces modèles:
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})
S'il vous plaît aider cette pauvre âme pour configurer sa configuration URL.
Merci
Coincé avec quoi? Comment écrire les modèles 'urls.py'? À quoi voulez-vous que les URL ressemblent? Fournissez quelques exemples d'URL et les vues qu'ils sont censés déclencher. –
Oui, je suis coincé avec la configuration url.py. Et j'ai déjà écrit des exemples d'URL dont j'ai besoin. Cordialement – Hellnar