У меня есть форма запроса, сделанная пользователями и сохраненная в базе данных под моделью контактов.У каждого пользователя может быть много запросов, которые должны отображаться на его панели инструментов. С другой стороны, у каждого пользователя есть панель инструментов, включая все сделанные им запросы.Я использовал DetailView и, как написано в документации Django, этот вид на основе классов возвращает только один объект.Как мне решить мою проблему?
Я хочу иметь панель мониторинга для каждого пользователя, которая фильтруется user.id и возвращает все относящиеся Запросы указанному пользователю.
модели.py:
class Contact(models.Model):
listing = models.CharField(max_length=200)
listing_id = models.IntegerField(blank=True)
name = models.CharField(max_length=200)
email = models.CharField(max_length=100)
phone = models.CharField(max_length=30)
message = models.TextField(blank=True)
contact_date = models.DateTimeField(default=datetime.now, blank=True)
user_id = models.IntegerField(blank=True)
def __str__(self):
return self.name
Views.py:
class DashboardView(generic.DetailView):
template_name = 'accounts/dashbord.html'
model = Contact
pk_url_kwarg = 'pk'
def get_context_data(self, **kwargs):
context = super(DashboardView, self).get_context_data(**kwargs)
context['object_list']= Contact.objects.all().filter(user_id=self.pk_url_kwarg)
return context
urls.py:
path('<int:pk>', view=DashboardView.as_view(), name='dashboard'),
моя ошибка:
Страница не найдена (404) Метод запроса: GET URL запроса: http://127.0.0.1:8000/contact/30 Поднято: contacts.views.DashboardView
Не найдено ни одного контакта, соответствующего запросу
Вы видите эту ошибку, потому что у вас есть DEBUG = True в вашем файле настроек Django.Измените это на False, и Django отобразит стандартную страницу 404.