Объект 'Photo' не является итерируемым

У меня есть веб-страница, которая показывает детали из моей базы данных, но когда пользователь нажимает на кнопку просмотра, она перенаправляет меня на страницу деталей и получает id, но в то же время она дает мне ошибку 'Photo' object is not iterable, что не так с моим кодом? Как мне исправить ошибку?

Ошибка: enter image description here

ошибка возврата:

views.py

@login_required()
def details(request, pk):

    allusername = Photo.objects.get(id=pk)
    context = {'allusername': allusername}
    print(pk)
    return render(request, 'details.html', context)

details.html

gallery.html

Вот как выглядит моя страница галереи, поэтому когда пользователь нажимает на кнопку просмотра, он должен получить ID и перенаправить его на страницу подробностей и просмотреть более подробную информацию, которая находится в базе данных.

enter image description here

внутри вашего файла details.html
измените это

         {% for photo in allusername %}


       <tr>
        <td>{{photo.Datetime}}</td>
      <td>{{photo.status}}</td>
      <td>{{photo.Datetime}}</td>


  </tr>
{% endfor %}

to

           <tr>
        <td>{{allusername.Datetime}}</td>
      <td>{{allusername.status}}</td>
      <td>{{allusername.Datetime}}</td>


  </tr>

проблема в том, что вы используете цикл for над неитерируемым объектом.

Когда вы используете метод get в наборе запросов, он возвращает только один объект, если он найден, или ошибку "Запрос не существует", если объект не найден. Таким образом, вы пытались выполнить итерацию по одному элементу, поэтому вы и получаете эту ошибку.

Просто удалите цикл for и сохраните остальной код, как показано ниже.

  <!-- not to include    {% for photo in allusername %} -->    
  <tr>
      <td>{{allusername.Datetime}}</td>
      <td>{{allusername.status}}</td>
      <td>{{allusername.Datetime}}</td>    
  </tr>

  <!-- {% endfor %}  -->
Вернуться на верх