如何将特定书籍的bookinstance.id传递给Django中基于函数的视图?

如何将特定书籍的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

我有一个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_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获取该书的实例