我不确切地知道如何解释这一点,但我会尝试......标签的链接会发生一些奇怪的事情...基本上当我链接一个< h1 时>标签或任何东西去另一个模板标签,它不起作用...它确实改变了网址扩展,但它保持在同一模板...
我现在会告诉你这些文件...... 这是文件夹项目的树:
tube/
├── main
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ ├── views.py
├── manage.py
├── models.py
├── templates
│ ├── base.html
│ └── main
│ ├── details.html
│ └── main.html
└── tube
├── __init__.py
├── settings.py
├── urls.py
├── views.py
├── wsgi.py
main / views.py :
class Main(TemplateView):
template_name = 'main/main.html'
def get_context_data(self, **kwargs):
context = super(Main, self).get_context_data(**kwargs)
test = Test.objects.all().order_by('ps_name')
# for i in range(200):
# lines.append('Line %s' % (i + 1))
paginator = Paginator(test, 20)
page = self.request.GET.get('page')
try:
show_lines = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
show_lines = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
show_lines = paginator.page(paginator.num_pages)
context['test'] = show_lines
return context
def details(request, pk):
ps = Test.objects.get(id=pk)
print ps
return render(request, 'main/details.html', {'test': ps})
正如您所看到的,我的第一个视图转到main.html,第二个视图转到details.html
main / urls.py :
urlpatterns = [
url(r'$', views.Main.as_view(), name='main'),
url(r'(?P<pk>\d+)/', views.details, name='details'),
]
这是我的 templates / main / main.html :
{% extends 'base.html' %}
{% load staticfiles %}
{% load static %}
{% load bootstrap4 %}
{% block content %}
<div class="container">
<table class="table table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Rank</th>
</tr>
</thead>
<tbody>
{% for ps in test %}
<tr>
<td>
<a href="{% url 'main:details' pk=ps.id %}">{{ ps.ps_name }}</a>
</td>
<td>{{ ps.ps_rank }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% bootstrap_pagination test url="/test?page=1" size="small" %}
</div>
{% endblock %}
这只是 templates / main / details.html :
的测试部分<div class="container">
<table class="table table-bordered">
<thead>
<tr>
<th>Bio</th>
</tr>
</thead>
<tbody>
{% for ps in test %}
<tr>
<td>{{ ps.bio }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
所以我的问题是......当我点击 main / main.html 中的任何链接时,它没有显示 main / details.html 的内容向我显示了来自 main / main.html 的相同内容,但它确实更改了网址扩展。 有谁知道为什么?其他项目的原因我没有这样的问题...它工作正常。
谢谢
版本:
Django==1.11.10
django-bootstrap4==0.0.6
更新
更改网址扩展名: main / main.html 位于https://example.com/main .... main / details.html 位于https://example.com/main/(pk.id) ....基本上当我点击https://example.com/main上的名称时,它会转到https://example.com/main/101...but页面不会更改
答案 0 :(得分:2)
您错过了主网址中的锚点;目前它只是意味着&#34;结束&#34;的任何字符串,当然它匹配所有内容。它应该是:
url(r'^$', ...
答案 1 :(得分:1)
您的urls
应如下所示,您遗漏了^
urlpatterns = [
url(r'^$', views.Main.as_view(), name='main'),
url(r'^(?P<pk>\d+)/$', views.details, name='details'),
]