Kai*_*s B 0 python django python-3.6
我是 Django 的新手,我刚刚创建了一个包含几个类的模型,并创建了视图和 url,一切正常,直到我尝试提取对象的 id 以在 url 中使用它。这是我的代码:
网址.py:
from django.conf.urls import url
from . import views
urlpatterns = [
# / structures/
url(r'^$', views.index, name='index'),
# / structures/712
url(r'^(?P<structure_id>[0-9]+)/$', views.detail, name='detail'),
]
Run Code Online (Sandbox Code Playgroud)
视图.py:
from django.http import HttpResponse
from .models import Structure
def index(request):
all_structures = Structure.objects.all()
html = ''
for Structure in all_structures:
url = '/structures/' + str(Structure.id) + '/'
html += '<a href="' + url + '">' + Structure.name + '</a><br>'
return HttpResponse(html)
def detail(request, structure_id):
return HttpResponse("<h2>Details for Structure id " + str(structure_id) + "</h2>")
Run Code Online (Sandbox Code Playgroud)
模型.py:
from django.db import models
class Structure(models.Model):
name = models.CharField(max_length=120)
path = models.CharField(max_length=200)
def __str__(self):
return self.name
class Type(models.Model):
typename = models.CharField(max_length=50)
def __str__(self):
return self.typename
class Record(models.Model):
structure = models.ForeignKey(Structure, on_delete=models.CASCADE) #each structure has many records, each per line
name = models.CharField(max_length=200)
type = models.ForeignKey(Type)
pos = models.IntegerField()
long = models.IntegerField()
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误:

我没有看到任何错误的引用或我的代码有任何问题。我也在看“thenewboston”教程,我正在做与巴基完全相同的步骤。这对他来说很好,但对我来说不是。
谢谢你的协助!