innerhalb einer App habe ich zwei Modelle, namens Course und Step. Jeder Schritt gehört zu einem Kurs und jeder Kurs hat viele Schritte. Ich habe jedoch Probleme beim Erstellen einer Detailansicht für Steps. Zum Beispiel, wenn ich zur URL 'http://127.0.0.1:8000/courses/1' gehe, sollte es Schritte für course.objects.get(pk=1)
anzeigen. Was ich jedoch zurückbekomme, ist nur die Seite für den Kurs, d. H. http://127.0.0.1:8000/courses '.Detailansicht Vorlage zeigt keine Daten
Modell
from django.db import models
# Create your models here.
class Course(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length= 255)
description = models.TextField()
def __str__(self):
return self.title
class Step(models.Model):
title = models.CharField(max_length = 255)
description = models.TextField()
order = models.IntegerField()
course = models.ForeignKey(Course)
def __str__(self):
return self.title
URL
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.course_list),
url(r'(?P<pk>\d+)/$', views.course_detail)
]
Ansicht
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
from .models import Course, Step
def course_list(request):
courses = Course.objects.all()
return render(request, 'courses/course_list.html', {'courses': courses})
def course_detail(request, pk):
course = Course.objects.get(pk=pk)
return render(request, 'courses/course_detail.html', {'course': course})
course_detail.html
{% extends 'layout.html' %}
{% block title %}{{course.title}}{% endblock %}
{% block content %}
<article>
<h2>{{ course.title }} %</h2>
{{course.description}}
<section>
{% for step in course.step_set.all %}
<h3>{{ step.title }}</h3>
{{step.description}}
{% endfor %}
</section>
</article>
{% endblock %}
Haupt Urls
from django.conf.urls import url, include
from django.contrib import admin
from courses.views import course_list
from django.conf import settings
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r'^courses/', course_list),
url(r'^admin/', admin.site.urls),
url(r'^$', views.hello_world),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Ich kann einfach nicht zu erkennen scheinen, wo ich schief gelaufen
Ich denke, diese "urls.py" ist die für Ihre "Kurse" App. Was befindet sich in Ihrer Hauptdatei 'urls.py'? –
Gerade meine Haupt-urls.py-Datei hinzugefügt – electro7912
Dort! Das Problem ist, dass Ihr Haupt-'urls.py' das' urls.py' nicht aus der Anwendung enthält, sondern nur jeden Pfad, der mit 'courses /' beginnt, in die 'course_list'-Ansicht auflöst. Ich werde eine Antwort hinzufügen. –