Я столкнулся с очень странным поведением моего приложения django, которое я не понимаю. Может быть, кто-то видит очевидную ошибку, которую я не вижу. Я также должен админ, я не эксперт в django ...
У меня есть модель - Exposure
и мое приложение app_name = 'BPMWebGUI'
Пользователь может иметь экспозиции, и я использую модель пользователя django по умолчанию.
urls.py
urlpatterns = [
path('', views.user_login, name='user_login'),
path('<slug:slug>/', views.ExposureDetailView.as_view(), name='exposure_detail'),
path('my_exposures/', views.ExposureListView.as_view(), name='user_exposure_list'),
]
Работает ссылка href="{% url 'BPMWebGUI:user_exposure_list' %}
и URL: 127.0.0.1: 8000 / BPMWebGUI / file_upload / появляется в браузере
views.py
from django.views.generic.detail import DetailView
from django.views.generic.list import ListView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import Http404
from .models import Exposure, User
class ExposureDetailView(LoginRequiredMixin, DetailView):
model = Exposure
def __init__(self,*args, **kwargs):
print("Exposure Detail View initiated")
super(DetailView, self).__init__(*args, **kwargs)
class ExposureListView(LoginRequiredMixin, ListView):
model = Exposure
template_name = 'BPMWebGUI/user_exposure_list.html'
def __init__(self,*args, **kwargs):
print("Exposure List View initiated")
super(ExposureListView, self).__init__(*args, **kwargs)
def get_queryset(self):
try:
print('get query set is called')
self.exposure_user = User.objects.prefetch_related('exposures').get(
username__iexact=self.kwargs.get("username")
)
except User.DoesNotExist:
print("I was here")
raise Http404
else:
return self.exposure_user
И когда я запускаю код в режиме отладки, я всегда заканчиваю __init__()
в ExposureDetailView, а не в ExposureListView. Если я хочу увидеть детали некоторой экспозиции, я правильно попадаю в DetailView. Может ли кто-то помочь, или информации недостаточно? Спасибо всем заранее!