Я пытаюсь показать подробный вид контактов, хранящихся в телефонной книге.Телефонная книга (id, name) - это одна из моих моделей, которая является внешним ключом для модели Contact (id, first_name, last_name, phone_number, phone_book).
На моей странице указателя есть кнопка, которая открываеттелефонная книга.После этого я хочу, чтобы пользователь мог щелкнуть телефонную книгу, и ему будет показан подробный вид (имя, фамилия, номер телефона).
В view.py у меня есть функция, которая захватываетвся телефонная книга, проходит через контекст (dict).В моем шаблоне я использовал цикл for, чтобы просмотреть все телефонные книги и распечатать их.
Я не могу перенаправить страницу в подробный вид.Как получить телефонную книгу, по которой щелкнул пользователь?И как перенаправить страницу с ./view на ./detail
# view.py
def view_phone_book(request):
all_phone_books = PhoneBook.objects.all()
context = {
'all_phone_books': all_phone_books
}
return render(request, "CallCenter/view_phone_book.html", context)
def detailed_view_phone_book(request):
all_contacts = Contact.objects.all().filter(phone_book=phone_book_user_clicked_on)
context = {
'all_contacts': all_contacts
}
return render(request, "CallCenter/detailed_view_phone_book.html", context)
# urls.py
urlpatterns = [
path('', index, name="index"),
path('create/', create_phone_book, name="create"),
path('add/', add_to_phone_book, name="add"),
path('view/', view_phone_book, name="view"),
path('detail/', detailed_view_phone_book, name="detailed_view")
]
# models.py
class PhoneBook(models.Model):
"""
Model to store customer to a phone book
"""
name = models.CharField(max_length=10, blank=False)
def __str__(self):
return self.name
class Contact(models.Model):
"""
Model to store customer to a phone book.
"""
first_name = models.CharField(max_length=50, blank=False)
last_name = models.CharField(max_length=50, blank=False)
phone_number = models.CharField(max_length=13, blank=False, unique=True)
phone_book = models.ForeignKey(PhoneBook, on_delete=models.CASCADE)
def __str__(self):
return self.phone_number
<!--view_phone_book.html-->
<table>
<tr>
<th>Phone Book</th>
</tr>
{% for phone_book in all_phone_books %}
<tr>
<form method="get" action="../detail/"><td><a href="">{{ phone_book }}</a> </td></form>
</tr>
{% endfor %}
</table>
<!--detailed_view_phone_book.html-->
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Phone Number</th>
</tr>
{% for phone_detail in all_phone_detail %}
<tr>
<form>
<td>{{ phone_detail.first_name }}</td>
<td>{{ phone_detail.last_name }}</td>
<td>{{ phone_detail.phone_number }}</td>
</form>
</tr>
{% endfor %}
</table>
Я не могу перейти с ./view на ./detail.Кроме того, как я узнаю, на какую телефонную книгу нажал пользователь?