В основном я пытаюсь просмотреть все комментарии, сопровождаемые определенным сообщением
Это мои views.py
from django.views import generic
from .models import comment, article
class IndexView(generic.ListView):
template_name = 'newspaper/newspaper.html'
context_object_name = 'articles'
def get_queryset(self):
return article.objects.order_by('-date')
class ArticleDetailsView(generic.DetailView):
template_name='newspaper/details.html'
context_object_name = 'articles'
def get_queryset(self):
return article.objects.order_by('-date')
class CommentsDetailsView(generic.DetailView):
template_name='newspaper/details.html'
context_object_name = 'comments'
def get_queryset(self):
return comment.objects.all()
models.py
from django.db import models
from datetime import datetime
class article(models.Model):
title= models.CharField(max_length=150)
body= models.TextField()
date= models.DateField()
author= models.CharField(max_length=150, default='')
def __str__(self):
return self.title + ' - ' + str(self.author)
class comment(models.Model):
main_article=models.ForeignKey('article',on_delete=models.CASCADE)
text=models.TextField(default='Empty reply')
date = models.DateTimeField(default=datetime.now, blank=True)
def __str__(self):
return self.text
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)$',views.ArticleDetailsView.as_view(),name='articledetails'),
url(r'^(?P<main_article_id>[0-9]+)$',views.CommentsDetailsView.as_view(),name='commentdetails'),
]
и, наконец, мой HTML-файл
{% extends "header.html" %}
{% block title %}
Article Details
{% endblock %}
{% block content %}
{% if articles %}
<div class="panel panel-primary">
<div class="panel-heading">
<h2>{{ articles.title}} </h2>
</div>
<div class="panel-body">
<h4>{{ articles.body}} </h4>
</div>
<div class="panel-footer">
<h5><i> Posted on: {{ articles.date}} </i> </h5>
<h6 class="text-right"><i>By: {{articles.author}}</i></h6>
</div>
</div>
<br>
<button class="btn btn-primary" type="button" >
Replies <span class="badge">{{ comments.count }}</span>
</button>
{% for y in comments %}
<div class="well">
<h5>{{ y.text}} </h5>
<h5><i>On: {{ y.date}} </i></h5>
</div>
<br>
{% endfor %}
{% else %}
<div class="alert alert-danger" role="alert">There is no articles with the ID</div>
{% endif %}
{% endblock %}
Я простоначиная с общих представлений, и они причиняли мне боль в горле, но я чувствовал, насколько они сильны, я не уверен, что использование DetailView
для раздела комментариев - идеальный случай для моей ситуации.