[Django] Wie erstelle ich einen Link auf eine andere Seite?
Verfasst: Mittwoch 21. Januar 2009, 16:06
Hallo,
ich habe heute angefangen, mich mit Django zu beschäftigen. Dabei habe ich mit diversen Anleitungen und Beispielen aus dem Internet gespielt.
Leider hänge ich nun fest und komme nicht mehr weiter.
Hier meine urls.py:
und meine views.py:
Wenn ich nun im Browser die Adresse 'http://127.0.0.1:8000/meldungen/' eingebe, werden wie erwartet die Titel der einzelnen Meldungen angezeigt. Dafür verwende ich folgendes Template:
Klicke ich nun einen Titel an, so wird die Adresszeile im Browser um die ID erweitert (z.B. 'http://127.0.0.1:8000/meldungen/2/'). Im Fenster wird die Meldung aber nicht angezeigt. Wenn ich auf eine andere Meldung klicke, wird auch diese ID der Adresszeile zugefügt ('http://127.0.0.1:8000/meldungen/2/4/').
Die ausgewählte Meldung soll in folgenden Template angezeigt werden:
Was muss ich ändern, damit der Link funktioniert?
Grüße
Mawilo
ich habe heute angefangen, mich mit Django zu beschäftigen. Dabei habe ich mit diversen Anleitungen und Beispielen aus dem Internet gespielt.
Leider hänge ich nun fest und komme nicht mehr weiter.
Hier meine urls.py:
Code: Alles auswählen
from django.conf.urls.defaults import *
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Example:
# (r'^versuch/', include('wxpython.foo.urls')),
(r'^meldungen/', 'versuch.article.views.VerzeichnisMeldung'),
(r'^meldungen/(?P<meldungs_id>\d+)/$', 'versuch.article.views.EineMeldung'),
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
#(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
)
Code: Alles auswählen
from versuch.article.models import Meldung
from django.shortcuts import render_to_response
def VerzeichnisMeldung(request):
meldungen = Meldung.objects.order_by('-zeitstempel')[:10]
return render_to_response('meldungen.html', {'meldungen': meldungen})
def EineMeldung(request, meldungs_id):
meldung = Meldung.objects.get(pk=meldungs_id)
return render_to_response('meldungsausgabe.html', {'meldung': meldung})
Code: Alles auswählen
{% extends "base.html" %}
{% block title %}Meldungen{% endblock %}
{% block content %}
<h1>Meldungen</h1>
<ul>
{% for meldung in meldungen %}
<li><a href="{{ meldung.id }}/">{{ meldung.titel|escape }}</a></li>
{% endfor %}
</ul>
{% endblock %}
Die ausgewählte Meldung soll in folgenden Template angezeigt werden:
Code: Alles auswählen
{% extends "base.html" %}
{% block title %}{{ meldung.titel|escape }}{% endblock %}
{% block content %}
<h1>{{ meldung.titel|escape }}</h1>
<p>
{{ meldung.text|escape|urlize }}
</p>
{% endblock %}
Grüße
Mawilo