Я не могу заставить return super (). Form_valid (form) работать - PullRequest
0 голосов
/ 22 января 2020

Я решил свою проблему и предоставил свое решение ниже.

Когда я создаю или обновляю сообщение, изменения сохраняются в базе данных сайтов. Но после нажатия кнопки отправки я получаю сообщение об ошибке.

No URL to redirect to.  Either provide a url or define a get_absolute_url method on the Model.

Я хочу быть перенаправлен на текущий URL. Я думал, что строка кода return super().form_valid(form) подразумевает это.

Я мог бы сделать success_url = '/', но в идеале я не хочу, чтобы меня возвращали на домашнюю страницу.

class PostCreateView(LoginRequiredMixin, CreateView):
        model = Post
        fields = ['title', 'content']

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

1 Ответ

0 голосов
/ 22 января 2020

Код в models.py был неправильным, я пропустил отступы.

Мой сайт работает нормально с этим кодом -

class Post(models.Model):
    title = models.CharField(max_length=100)
    content =  models.TextField()
    date_posted = models.DateTimeField(default=timezone.now())
    author = models.ForeignKey(User, on_delete=models.CASCADE)


    def __str__(self):
        return self.title 

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk':self.pk})
...