在我的models.py文件中,我创建了一个名为hero_name的变量。例如,如果英雄名称是Bart,我希望URL为./heroes/Bart
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<str:hero_name>/', views.heropage, name='heropage'),
]
views.py
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Heroes
def index(request):
return render(request, 'heroes/index.html')
def heropage(request, hero_name):
get_object_or_404(Heroes, pk=hero_name)
return render(request, 'heroes/heropage.html')
models.py
from django.db import models
class Heroes(models.Model):
hero_name = models.CharField(max_length=200)
答案 0 :(得分:0)
我认为您需要用一种基于get_object_or_404
而非hero_name
获取对象的方法来替换pk
的实现,因为在模型中,hero_name
是不是您的主键。
我希望这会有所帮助。
答案 1 :(得分:0)
不清楚您要问什么。但是,您当然需要使用相关字段来查询对象,并将结果传递给模板:
hero = get_object_or_404(Heroes, hero_name=hero_name)
return render(request, 'heroes/heropage.html', {"hero": hero})
答案 2 :(得分:-1)
将您想要的字段设置为primary_key。
class Heroes(models.Model):
hero_name = models.CharField(primary_key=True)