我在基于类的success_url中重定向时遇到问题

时间:2019-12-15 00:36:26

标签: django python-3.x django-forms

我正在使用Django 2.2,并且在基于类的成功URL中重定向时遇到了问题。

enter code here - view.py

class LetterFormView(CreateView):
   template_name = 'post.html'
   model = Letter
   form_class = LetterForm


def get_success_url(self):
    return reverse ('mainapp:user-profile')

和url.py

enter code here- urls.py

path('profile/<username>/', views.UserProfilePage.as_view(), name='user-profile'),
class Letter(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, default=1)
    subject = models.CharField(max_length=100, null=False, blank=False)
    description = models.CharField(max_length=300, null=True, blank=True)
    date_time = models.DateTimeField(auto_now_add=True)
    Text = models.TextField()

这是我的模型的样子

现在,我不确定如何在此处传递username参数。

3 个答案:

答案 0 :(得分:1)

您可以使用kwargs以反向功能传递url参数。

import akka.actor.typed.eventstream.EventStream;

system.eventStream().tell(new EventStream.Subscribe(DeadLetter.class, actor));

答案 1 :(得分:0)

您似乎缺少get_success_url方法的缩进级别;它必须在class LetterFormView范围内:

class LetterFormView(CreateView):
    template_name = 'post.html'
    model = Letter
    form_class = LetterForm


    def get_success_url(self):
        return reverse ('mainapp:user-profile')

此外,请务必缩进四个空格以遵守PEP-8;您似乎在班上缩进了三个空格。

答案 2 :(得分:0)

您可以尝试查看代码

class LetterFormView(CreateView):
    template_name = 'post.html'
    model = Letter
    form_class = LetterForm

    def get_success_url(self):
       return reverse('mainapp:user-profile', kwargs={'username': self.object.username')})

self.object.username请使用如何对项目中的模型结构进行调整

而不是在URL代码上,不要忘记初始化 username 参数上的数据类型

path('profile/<str:username>/', views.UserProfilePage.as_view(), name='user-profile'),