Как ввести значения ForeginKey в модель с CreateView - PullRequest
0 голосов
/ 03 июля 2019

Я создаю вики и мне нужно ввести значения в модель под названием revision. Эта таблица имеет foreigkey для википейджа. Моя проблема в том, что я не могу вставить значения в модель ревизии. Я попытался использовать def form_valid(self, form), как при входе в систему, но безуспешно.

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='revisions')
    content = models.TextField('Content')
    author = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
    last_edit = models.DateTimeField('Last Edited', 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

View.py

Class WikipageCreateView(CreateView):
    template_name = 'wiki/wikipageform.html'
    model = Wikipage
    fields = ['title']

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)

Шаблон максимально прост с {{form.as_p}} и всем необходимым.

...