【发布时间】:2018-07-19 16:37:36
【问题描述】:
请你帮帮我。我正在学习 Django 初学者课程 (https://github.com/sibtc/django-beginners-guide),无法弄清楚为什么示例中的测试用例总是返回错误 404,即使在 shell 或 Web 浏览器中运行良好。
我正在运行 Python 3.5.3,Django 版本:2.0.7
代码: url.py:
from django.contrib import admin
from django.urls import path
from boards import views as boards_views
urlpatterns = [
path('', boards_views.home, name='home'),
path('boards/<int:pk>/', boards_views.board_topics, name='board_topics'),
path('admin/', admin.site.urls),
]
views.py:
from django.shortcuts import render, get_object_or_404
from .models import Board
# Create your views here.
def home(request):
boards = Board.objects.all()
return render(request, 'home.html', {'boards': boards})
def board_topics(request, pk):
board = get_object_or_404(Board, pk=pk)
return render(request, 'topics.html', {'board': board})
Tests.py:
from django.test import TestCase
from django.urls import resolve, reverse
from django.test.client import Client
from .views import home, board_topics
from .models import Board
# Create your tests here.
class BoardTopicsTests(TestCase):
def setUp(self):
Board.objects.create(name='Django', description='Django board.')
def test_board_topics_view_success_status_code(self):
url = reverse('board_topics', kwargs={'pk': 1})
print('url = ' + str(url))
response = self.client.get(url)
self.assertEquals(response.status_code, 200)
这个测试总是返回 404 错误,即使我可以在这个测试中看到打印语句,DB 条目存在并且 url 是正确的。
谢谢!
【问题讨论】: