@Heavy10110

Отображение полей из другого приложения django?

Захотел прикрутить комментарии к блогу.
1. Создал новое приложение comments
2. модель:
from __future__ import unicode_literals
from django.db import models
from django.conf import settings
from blog.models import Post
# Create your models here.

class Comment(models.Model):
	user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
	post = models.ForeignKey(Post)
	content = models.TextField()
	time = models.DateTimeField(auto_now_add = True)

	def __unicode__(self):
		return str(self.user.username)

3. Сделал миграции
4. Во вьюшку приложения blog сделал импорт
from comments.models import Comment
5. Во вьюшку, которая отображает пост добавил
comment = Comment.objects.all() # new add
context = {
	"title": "List of Posts",
	"object_list" : queryset,
	"comment" : comment  #new add
	}

6. Добавил в шаблон под пост
<div>{{ comment.user }}</div>
Ничего не отображается , а если добавить

<div>{{ instance.comment_set.all }}</div>
Получаю
<QuerySet [<Comment: User1>]>
Как отобразить данные из модели Comment нового приложения во views другого?
  • Вопрос задан
  • 1011 просмотров
Решения вопроса 1
{% for comment in instance.comment_set.all %}
  {{ comment }}
{% endfor %}

или так, не совсем понятно из твоего контекста
{% for item in comment %}
  {{ item }}
{% endfor %}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
class Comment(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    post = models.ForeignKey(Post, related_name="comments")
    content = models.TextField()
    time = models.DateTimeField(auto_now_add = True)


Убираете comment = Comment.objects.all() и "comment" : comment

и в темплейте пишете {% for comment in post.comments %}
{{ comment.content }}

Как-то так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы