【发布时间】:2020-08-17 09:21:43
【问题描述】:
信息
- 我在 Django 中有两个简单的模型,具有一对一的关系
- 我正在使用通用视图
- 数据库中有
Issues和Solutionss,编号从1到10 - 通过
DetailView(例如localhost:8000/myapp/6/)加载Issue效果很好
错误
当尝试在浏览器中加载Solution 视图(例如localhost:8000/myapp/6/solution/)时,我得到Page not found (404), No solution found matching the query。
代码
models.py:
class Issue(models.Model):
def __str__(self):
return self.issue_text
issue_text = models.CharField(max_length=200)
class Solution(models.Model):
def __str__(self):
return self.solution_text
issue = models.OneToOneField(Issue, on_delete=models.CASCADE)
solution_text = models.CharField(max_length=200)
views.py:
class DetailView(generic.DetailView):
model = Issue
template_name = 'my_templates/detail.html'
class SolutionView(generic.DetailView):
model = Solution
template_name = 'my_templates/solution.html'
urls.py:
urlpatterns = [
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>[0-9]+)/solution/$', views.SolutionView.as_view(), name='solution'),
]
问题
我怀疑模型之间的关系可能不正确 - 我可以看到视图引发 404 错误,因为它找不到 solution 对象(尽管数据库中有一些 solution 对象,对于每个Issue)。
我一直在经历Django's docs on generic views 和making Django queries to the database,但我认为我混淆了这两者。
另外,使用pdb 进行调试只会使浏览器由于某种原因丢失对象。
我是不是把一对一的关系弄错了?
【问题讨论】:
标签: python django python-3.x django-views django-generic-views