@nurzhannogerbek

Django-reversion вывод данных из ManyToMany field?

Кто сталкивался с подобной задачей? Использую в своем проекте приложение django-reversion.

django-reversion: https://github.com/etianen/django-reversion

Есть модель данных "Task" c полем "comments" (ManyToMany field). В проекте есть страница, где выводится список всех версий с детальной информацией о всех изменениях в полях. В поле comments отображены id комментариев. Например: [66, 67, 68]. Как можно вывести остальную информацию о комментарии (author, text, created) вместо id?

models.py:
@reversion.register()
class Task(models.Model):
    comments = models.ManyToManyField("Comment")

class Comment(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    text = models.TextField()
    created = models.DateTimeField(auto_now_add=True)


views.py:
def task_reversions(request, project_code, task_code):
    project = get_object_or_404(Project, pk=project_code, status='open')
    task = get_object_or_404(GroupTask, pk=group_task_code)
    versions = Version.objects.get_for_object(ask)
    context = {
        'project': project,
        'task': task,
        'versions': versions,
    }
    return render(request, 'project/task_reversions.html', context)


task_reversions.html:
{% for field_name, field_value in version.field_dict.items %}
     {{ field_name }}
     {{ field_value }}
{% endfor %}
  • Вопрос задан
  • 906 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Maks113
Вероятно так:
{% for comment in task.comments.all %}
    {% for field_name, field_value in comment.field_dict.items %}
         {{ field_name }}
         {{ field_value }}
    {% endfor %}
{% endfor %}

Можно еще их заранее выбрать с помощью select_related()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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