Попытка создать отдельное приложение комментариев для проекта билетов django
Я пытаюсь создать отдельное приложение комментариев для проекта билетов, используя представления на основе классов как для билетов, так и для комментариев. Я думаю, что я получил большую часть функциональности, потому что когда я пытаюсь использовать функцию комментариев на самом сайте, она отображается в админке django, но не на сайте. Я полагаю, что проблема кроется в моих файлах urls.py или это может быть моя модель, но я не уверен, как действовать дальше. Пожалуйста, помогите
Вот трассировка
Вот корневой файл urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('users.urls')),
path('', include(('tickets.urls', 'tickets'), namespace='tickets')),
path('', include('tickets.urls')),
path('', include('comments.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
комментировать файл urls.py
urlpatterns = [
path('tickets/<int:pk>/', CommentListView.as_view(), name='ticket-detail'),
path('tickets/<int:pk>/comments/new/', CommentCreateView.as_view(), name='comment-create'),
path('tickets/comments/<int:pk>/update/', CommentUpdateView.as_view(), name='comment-update'),
path('tickets/comments/<int:pk>/delete/', CommentDeleteView.as_view(), name='comment-delete'),
]
файл ticket urls.py
urlpatterns = [
path('', TicketListView.as_view(), name='ticket-home'),
path('user/<str:username>', UserTicketListView.as_view(), name='user-tickets'),
path('tickets/<int:pk>/', TicketDetailView.as_view(), name='ticket-detail'),
path('tickets/new/', TicketCreateView.as_view(), name='ticket-create'),
path('tickets/<int:pk>/update/', TicketUpdateView.as_view(), name='ticket-update'),
path('tickets/<int:pk>/delete/', TicketDeleteView.as_view(), name='ticket-delete'),
path('about/', views.about, name='tickets-about'),
]
комментарии файла models.py
class Comment(models.Model):
ticket = models.ForeignKey(Ticket, related_name='comments', on_delete=models.CASCADE, null=True)
title = models.CharField(max_length=20)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
class Meta:
ordering = ['date_posted']
def __str__(self):
return self.content[:50]
def get_absolute_url(self):
return reverse('tickets:ticket-detail', kwargs={'pk': self.ticket_id})
файл tickets models.py
class Ticket(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
assignee = models.ForeignKey(Profile, on_delete=models.SET_NULL, blank=True, null=True)
status = models.BooleanField(choices=MARKED, default=True)
priority = models.TextField(choices=PRIORITIES, default='None', max_length=10)
label = models.CharField(choices=TYPES, default='Misc', max_length=100)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('ticket-detail', kwargs={'pk': self.pk})