如何将特定书籍的bookinstance.id传递给Django中基于函数的视图?
我有一个Django library应用程序,其中客户可以从图书列表中查看一本书(并重定向到book_detail.html页面),如果该书可用,则可以借阅该书 book\u detail.html-借书按钮如何将特定书籍的bookinstance.id传递给Django中基于函数的视图?,django,django-models,django-views,Django,Django Models,Django Views,我有一个Django library应用程序,其中客户可以从图书列表中查看一本书(并重定向到book_detail.html页面),如果该书可用,则可以借阅该书 book\u detail.html-借书按钮 {% for copy in book.bookinstance_set.all %} {% if copy.status == 'a' %} # <form method="POST" action ="{% url 'borrow_book' book_in
{% for copy in book.bookinstance_set.all %}
{% if copy.status == 'a' %}
# <form method="POST" action ="{% url 'borrow_book' book_instance.id%}" enctype="multipart/form-data">
<form method="POST" action ="{% url 'borrow_book' copy.id%}" enctype="multipart/form-data">
{% csrf_token %}
<button type="submit" class="btn btn-success">Borrow the book</button>
</form>
{% endif %}
{% endfor %}
当用户单击“借书”按钮时,我需要创建该书的实例,因此我使用的是book_实例模型
以下是Book和BookInstance模型之间的关系:
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey('Author', on_delete=models.SET_NULL, null=True)
class BookInstance(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, help_text='Unique ID for this particular book across whole library')
book = models.ForeignKey('Book', on_delete=models.SET_NULL, null=True)
due_back = models.DateField(null=True, blank=True)
borrower = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
STATUS_MAINTENANCE = 'm'
STATUS_ON_LOAN = 'o'
STATUS_AVAILABLE = 'a'
STATUS_RESERVED = 'r'
LOAN_STATUS = (
(STATUS_MAINTENANCE, 'Maintenance'),
(STATUS_ON_LOAN, 'On loan'),
(STATUS_AVAILABLE, 'Available'),
(STATUS_RESERVED, 'Reserved'),
)
status = models.CharField(
max_length=1,
choices=LOAN_STATUS,
blank=True,
default='m',
help_text='Book availability',
)
单击“借用”按钮时,我遇到错误:
NoReverseMatch at /catalog/book/16
Reverse for 'borrow_book' with no arguments not found. 1 pattern(s) tried: ['catalog/book/(?P<pk>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/borrow/$']
Request Method: GET
NoReverseMatch at/catalog/book/16
找不到任何参数的“借书簿”的反面。尝试了1种模式:[“目录/书籍/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/借用/$]
请求方法:获取
因此,在book-detail.html中,如何(以何种方式)将book_instance.id传递给视图。请尝试:
action ="{% url 'borrow_book' copy.id%}"
copy
似乎是迭代的单个实例
{% for copy in book.bookinstance_set.all %}
请尝试:
action ="{% url 'borrow_book' copy.id%}"
copy
似乎是迭代的单个实例
{% for copy in book.bookinstance_set.all %}
(代表问题作者发布答案)
以下是解决方案:
<form method="POST" action ="{% url 'borrow_book' copy.id%}" enctype="multipart/form-data">.
# use copy.id to get instance of that book
。
#使用copy.id获取该书的实例
(代表问题作者发布答案)
以下是解决方案:
<form method="POST" action ="{% url 'borrow_book' copy.id%}" enctype="multipart/form-data">.
# use copy.id to get instance of that book
。
#使用copy.id获取该书的实例