나는 운동상의 이유로 django 1.9.9/python 3.5에서 프로젝트를하고 있습니다. 블로그 앱, 기사 앱 및 댓글 앱이 있습니다. 댓글 앱은 블로그 및 기사와 관련이 있어야합니다. 내 문제는 템플릿에 내 의견이 표시되지 않는다는 것입니다. 코멘트가 생성되고 게시물/기사와 관련이 있기 때문에 관리자가 볼 수 있기 때문에 댓글 작성 문제가 아닙니다. 그들은 단순히 내 템플릿에 표시되지 않습니다.코멘트가 post_detail보기에 표시되지 않습니다.
내 의견/models.py :
from django.db import models
class Comment(models.Model):
post = models.ForeignKey('blog.Entry',related_name='post_comments', blank=True, null=True)
article = models.ForeignKey('articles.Article', related_name='article_comments', blank=True, null=True)
body = models.TextField()
created_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.body
내 commments/views.py : 설명이 있어야 할 곳에 여기
from django.utils import timezone
from django.shortcuts import render, get_object_or_404
from django.shortcuts import redirect
from .forms import CommentForm
from .models import Comment
from blog.models import Entry
from articles.models import Article
from blog.views import post_detail
from articles.views import article_detail
def article_new_comment(request, pk):
article = get_object_or_404(Article, pk=pk)
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.article = article
comment.created_date=timezone.now()
comment.save()
return redirect(article_detail, pk=article.pk)
else:
form=CommentForm()
return render(request, 'comments/add_new_comment.html', {'form': form})
def blog_new_comment(request, pk):
post = get_object_or_404(Entry, pk=pk)
if request.method == "POST":
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.post = post
comment.created_date = timezone.now()
comment.save()
return redirect(post_detail, pk=post.pk)
else:
form=CommentForm()
return render(request, 'comments/add_new_comment.html', {'form': form})
그리고
, 내 post_detail.html입니다.{% extends 'blog/base.html' %}
{% block content %}
<div class="post">
{% if post.modified_date %}
<div class="date">
{{ post.modified_date }}
</div>
{% else %}
<div class="date">
{{ post.published_date }}
</div>
{% endif %}
<a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"> Edit Post </span></a>
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaksbr }}</p>
<hr>
<a class="btn btn-default" href="{% url 'new_blog_comment' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"> Add Comment </span></a>
{% for comment in post.comments.all %}
<div class="comment">
<div class="date">{{ comment.created_date }}</div>
<p>{{ comment.body|linebreaksbr }}</p>
</div>
{% empty %}
<p>No comments here yet</p>
{% endfor %}
</div>
{% endblock %}
다른 파일은 블로그/모델, 뷰처럼 나를 도와 도움이 될 알려줘 내가 문제를 생각하지 않지만, : 그들은 정확히 동일 때문에 article_detail.html을 게시하지 않습니다 거기에있다.
예! 정말 고맙습니다. 나는 장고에서 아주 새로운데, 때로는 이런 명백한 오류를 발견 할 수 없다. –
문제 없습니다. 많은 부분에서'Article'과'Entry'를 비슷한 방식으로 사용하고 있다면 (예를 들어, 둘 다'Comment's가 붙어 있습니다), 기본 모델에서 서브 클래 싱을하고'Comment''를 각각에 대한 필드가 아닌 기본 모델. https://docs.djangoproject.com/en/1.10/topics/db/models/#multi-table-inheritance를 참조하십시오. –