Я строю вики и мне нужно сохранять каждую ревизию, сделанную для каждой вики.Это означает, что мне нужна новая таблица ревизий для каждого созданного вики-сайта.
При представлении каждого шаблона вики-страницы с DetailView мне требуется доступ к Wikipage.title, последней ревизии и ее Revision.content, Revision.author, Revision.last_edit и Revision.comment.Я смог получить доступ к названию, установив «model = Wikipage» и ревизию, установив «model = Revision», но не оба одновременно.
models.py
class Wikipage(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField('Created', auto_now_add=True)
def __str__(self):
return self.title
class Meta:
verbose_name_plural = "Wikipages"
class Revision(models.Model):
wikipage = models.ForeignKey(Wikipage, null=True,
on_delete=models.CASCADE, related_name='revision')
content = models.TextField('Content')
author = models.ForeignKey(User, null=True,
on_delete=models.SET_NULL)
last_edit = models.DateTimeField('Last edit', auto_now=True)
comment = models.TextField('Comment', blank=True)
class Meta:
verbose_name = 'Revision'
verbose_name_plural = 'Revisions'
ordering = ['-last_edit']
get_latest_by = ['last_edit']
def __str__(self):
return self.content
Я хотел использовать DetailView и CreateView, которые поставляются с django, но мне не удалось получить доступ к конкретным данным из обеих таблиц.Я получил ListView для правильной работы, но для этого нужен только заголовок из Википедии, а не Revision.