Информация
- У меня есть две простые модели в Django, с отношением один к одному
- Я использую generi c views
- В базе данных есть
Issue
s и Solutions
s, пронумерованные от 1 до 10 - Загрузка
Issue
через DetailView
(например, localhost:8000/myapp/6/
) прекрасно работает
Ошибка
При попытке загрузить представление 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 на generi c views и Django делает запросы к базе данных , но я думаю, что я путаю их.
Кроме того, отладка Использование pdb
просто заставляет браузер потерять объект по какой-то причине.
Я неправильно понял отношение один-к-одному?