Board
»
Django das Framework
»
Probleme & Fragen
»
Probleme mit der Url
|
Posted by z00m |
|
|
Hey zusammen,
gar nicht so leicht ein Django Forum zu finden Also hab vor einer Woche angefangen und hab mir das Djangobuch durchgelesen und natuerlich auch gleich mal ein Projekt gestartet. In diesen Projekt moechte ich Alle Laender der Welt darstellen. Und da kommt auch schon mein Problem. Also das soll folgendermassen ablaufen: Alle Kontinente (Regions) werden angezeigt -> Auswahl von Kontinent -> Url mit Kontinent (zB localohost:8000/world/asia/) Und nun sollen alle Laender in Asia angezeigt werden. Naechste Url waere dann zB localohost:8000/world/Asia/India/ Wie stell ich das an ? Mein bisheriger Code bringt mir immer folgende 404 Meldung: Request Method: GET Request URL: http://127.0.0.1:8000/world/Asia/ No Region matches the given query. Ich geh davon aus, dass etwas in der urls.py mit den regular expressions nicht stimmt. Da kenn ich mich nicht so aus und hab es einfach kopiert. models.py im app world from django.db import models
class Region(models.Model):
name = models.CharField(max_length=30, unique=True)
slug = models.SlugField(unique=True, prepopulate_from=('name',))
def __str__(self):
return self.name
class Meta:
ordering = ["name"]
class Admin:
pass
class Country(models.Model):
region = models.ForeignKey(Region)
name = models.CharField(max_length=30, unique=True)
slug = models.SlugField(unique=True, prepopulate_from=('name',))
currency = models.CharField(max_length=30)
flag = models.ImageField(upload_to='/flags')
def __str__(self):
return self.name
class Meta:
ordering = ["name"]
class Admin:
passurls.py im app world from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^$', 'worldguide.world.views.region'),
(r'^(?P<region_slug>- A-Za-z0-9+/)$', 'worldguide.world.views.countries'),
)
views.oy im app world from django.shortcuts import render_to_response
from world.models import Region
from world.models import Country
import django.shortcuts as shortcuts
def region(request):
region_list = Region.objects.all()
return render_to_response('world.html', {'region_list': region_list})
def countries(request, region_slug):
region = shortcuts.get_object_or_404(Region, slug=region_slug)
country_list = Country.objects.filter(region=region)
return render_to_response('countries.html', {'regions':region, 'country_list':country_list})
world.html auszug mit Links zu Kontinente <ul>
{% for regions in region_list %}
<li><a href="http://127.0.0.1:8000/world/{{ regions.slug }}">{{ regions.name }}</a></li>
{% endfor %}
</ul>Danke schon mal im Vorraus ! |
|
|
Posted by z00m |
|
|
Ahh nachdem ich ewig an der urls.py rumgemacht hab, habe ich endlich entdeckt was falsch war. Ich hab die Regular Expression falsch kopiert ...
Richtig waere CODE(r'^(?P<region_slug>- A-Za-z0-9+)/$', 'worldguide.world.views.countries' |
|
|
Posted by sascha ![]() |
|
|
Funktioniert es den jetzt, nach deiner Änderung?
|
|
|
Posted by z00m |
|
|
Jap alles genau so wie es soll
Vielleicht sollte ich mich mal ein bisschen mit den Regular Expressions beschaeftigen, da sie ja doch recht nuetzlich und maechtig sind ... |

