Q&A
前提・実現したいこと
ある動画を参考にして作成しています。
アイテムの画像をクリックすると、アイテムとOnetoOneで連携している各スタッフが表示されるページへ遷移する動作を予定しています。
動画を何度も見返したり、エラーに関するページを複数読みましたが、解決に至らなかったため質問させていただきます。
django初学者です。
発生している問題・エラーメッセージ
エラーのページとなります。
該当のソースコード
アイテム一覧が表示されるhtmlページです
html
1<!--app/templates/item.html--> 2 3{% extends 'app/base.html' %} 4 5{% block content %} 6 7<div class="text-center my-5"> 8 <div class="mb-5"> 9 <h1>受付一覧</h1> 10 </div> 11 <div class="row"> 12 {% for item in item_data %} 13 <div class="col-lg-3 col-mb-6"> 14 <div class="card img-thumbnail itemlist mb-3"> 15 <img src="{{ item.image.url }}" alt="" class="card-img-top card-thum"> 16 <div class="card-body text-center px-2 py-3"> 17 <h5 class="font-weight-bold">{{ item.name }}</h5> 18 </div> 19 <a href="{% url 'staff' item.pk %}" class="stretched-link"></a> 20 </div> 21 </div> 22 {% endfor %} 23 </div> 24</div> 25 26{% endblock %}
スタッフを表示するhtmlページです
html
1{% extends 'app/base.html' %} 2 3{% block content %} 4 5<div class="text-center my-5"> 6 <div class="mb-5"> 7 <h1>スタッフ一覧</h1> 8 </div> 9 10 <div class="row"> 11 {% for staff in staff_data %} 12 <div class="col-lg-3 col-mb-6"> 13 <div class="card img-thumbnail itemlist mb-3"> 14 <img src="{{ staff.user.image.url }}" alt="" class="card-img-top card-thum"> 15 <div class="card-body text-center px-2 py-3"> 16 <h5 class="font-weight-bold">{{ staff.user.first_name }} {{ staff.user.last_name }}</h5> 17 </div> 18 <a href="" class="stretched-link"></a> 19 </div> 20 </div> 21 {% empty %} 22 <p>まだスタッフがいません</p> 23 {% endfor %} 24 </div> 25</div> 26 27 28{% endblock %}
urls.pyです
python
1#app/urls.py 2 3from django.urls import path, include 4from . import views 5 6urlpatterns = [ 7 path('', views.ItemView.as_view(), name='item'), 8 path('item/<int:pk>/', views.StaffView.as_view(), name='staff'), 9]
views.pyです。
python
1#app/views.py 2 3class StaffView(View): 4 def get(self, request, *args, **kwargs): 5 item_data = get_object_or_404(Item, id=self.kwargs['pk']) 6 staff_data = Staff.objects.filter(item=item_data) 7 8 return render(request, 'app/staff.html',{ 9 'item_data': item_data, 10 'staff_data': staff_data 11 })
models.pyです。
python
1#app/models.py 2 3class Staff(models.Model): 4 user = models.OneToOneField(CustomUser, verbose_name='スタッフ', on_delete=models.CASCADE) 5 item = models.ForeignKey(Item, verbose_name='モノ', on_delete=models.CASCADE) 6 7 def __str__(self): 8 return f'{self.item}:{self.user}' 9
試したこと
urls,models,templatesのスペルミスや、データの有無の確認
補足情報(FW/ツールのバージョンなど)
- Windows 10
- python 3.9.1
- Django 4.0.1