也许这个问题已经以一种或另一种方式得到了回答。但是我要问一下,因为我试图自己回答,我用Google搜索了好几天,但我不知道。
我的Django项目中有一个名为“接收”的应用程序。
我想出了所有的东西。
我在html中有指向正确的urlpattern的链接。
<p><tab1><a href="{% url 'go_to_reception' %}">Reception</a></tab1></p>
urlpatterns = [..., path('go_to_reception', views.reception, name='go_to_reception'), ...]
视图是这样的
def reception(request):
return render(request, 'reception.html')
现在,我希望链接转到接收页面,而不是接收.html。应用页面。我需要在那里写什么。我已经尝试了所有想到的方法,但是没有任何效果。
接收如下:
http://127.0.0.1:8000/admin/reception/
那么我要如何指出这一点。
请帮助! 谢谢
答案 0 :(得分:1)
答案 1 :(得分:0)
看,这对您有帮助吗?我用这种方式解决了类似的问题
url.py
path('gotoreception', views.reception, name="go_to_reception"),
html
<a href="{% url 'go_to_reception' slug=slug %}"
模型
slug = models.SlugField(max_length=255, unique=True)
视图
def home(request, slug):
context = {'yourdata':yourdata}
return render(request,'index.html', context)
在模板标记url上,您需要使用路径名,如果将字段存储在数据库中,则可以使用Slug。
3º选项,但不建议使用,如果有变量,则可以添加值,但这不是一个好习惯
我向您推荐这2种资源:
硬编码方式
您能测试一下吗? 网址
urlpatterns = [..., path('reception/', views.reception, name='go_to_reception'), ...]
html
and on the link <a href="127.0.0.1/reception/">
是硬编码方式,但是将来您可能会在内部页面上遇到麻烦或相对URL 404
答案 2 :(得分:0)
谢谢你的回答马修,
在您发表最新评论后,我将代码更改为以下内容:
<p><tab1><a href="{% url 'reception:go_to_reception' %}">Reception</a></tab1></p>
并在url.py中为其:
path('reception/', include('reception.urls', namespace='reception-urls')),
在ception.urls.py中
app_name = "reception"
,消息现在显示:
django.urls.exceptions.NoReverseMatch:找不到'go_to_reception'的反向。 “ go_to_reception”不是有效的视图函数或模式名称。
很抱歉如此来回,但老实说我无法使其正常工作。
答案 3 :(得分:0)
您的reception.views中有一个名为go_to_rececption的视图,还是在reception.urls中有一个名为go_to_reception的URL?。
不用担心,只是想帮助您!