Я хотел бы иметь подробное представление Django, которое показывает все модели, содержащие внешний ключ для страницы подробного представления для этого значения внешнего ключа, связанного из представления списка.
Модель ActivityID
содержитсписок идентификаторов символов (например, «F1088HW»).Есть несколько других моделей, каждая из которых содержит содержимое хранилища, и у каждого элемента есть ActivityID.Так, например, при щелчке по F1088HW на странице сведений должны отображаться все объекты, в которых есть данные этого ActivityID.
Пока у меня есть следующий взгляд, основанный на различных других SO вопросах:
class ActivityDetailView(generic.DetailView):
model = ActivityID
# context_object_name = 'library_set'
# Changed to 'activity' based on comments below
# context_object_name = 'ativity'
def get_queryset(self):
pk = self.kwargs['pk']
return models.objects.filter(activityid = pk)
И ActivityID_detail.html
:
{% extends "base_generic.html" %}
{% block content %}
<h1>Field Activity ID: {{ activity }} </h1>
<div style="margin-left:20px;margin-top:20px">
<h4>Libraries</h4>
<dl>
{% for library in activity.library_set.all %}
<dt><a href="{% url 'activity-detail' library.pk %}">{{library}}</a> ({{library.library_set.all.count}})</dt>
{% endfor %}
</dl>
</div>
{% endblock %}
urls.py
:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('activities/', views.ActivityIDsView.as_view(), name='activities'),
path('activities/<int:pk>', views.ActivityDetailView.as_view(), name='activity-detail'),
]
Но, щелкнув ActivityID в представлении списка, вы получите:
AttributeError в / catalog / activity / 2429
модуль 'django.db.models' не имеет атрибута '
Есть идеи, что я делаю не так?