Ich habe eine Django-App mit folgendem Inhalt
models.py
Code: Alles auswählen
class Dpkg(models.Model):
hostname = models.CharField(max_length=20)
status = models.CharField(max_length=2)
name = models.CharField(max_length=50)
version = models.CharField(max_length=50)
description = models.TextField()
def __unicode__(self):
return self.hostname
Code: Alles auswählen
[...]
(r'^host/(?P<host>[a-zA-Z]+)$', 'packages.views.host'),
(r'^package/(?P<package>[a-zA-Z0-9_.-]+)$', 'packages.views.package'),
[...]
Code: Alles auswählen
def host(request, host):
host_list = Dpkg.objects.filter(hostname=host)
return render_to_response('host/detail.html', { 'host_list ' : host_list})
def package(request, package):
package_list = Dpkg.objects.filter(name=package).order_by('-version')
return render_to_response('packages/detail.html', { 'package_list': package_list})
http://127.0.0.1:8000/package/xy
auf, wird die Seite mit Inhalt wiedergegeben.
Bei
http://127.0.0.1:8000/host/xy
funktioniert das nicht.
(der Paketname bzw. hostname existiert beidesmal in der DB)
Woran liegt das? Kann ausser der etwas anderen regexp in der urls.py keine Unterschied erkennen.(auch mit identischer regexp kein Erfolg)
Das template-file ist beidesmal identisch, (von s/host/package/g mal abgesehen)
Code: Alles auswählen
{% for host in host_list %}
<li>
{{ host.hostname }} {{ host.version }} {{ host.name }}
</li>
{% endfor %