首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django all-auth应用程序,如何修改/account/profile页面以显示自定义视图

问Django all-auth应用程序,如何修改/account/profile页面以显示自定义视图
EN

Stack Overflow用户
提问于 2017-08-17 23:31:45
回答 2查看 1.2K关注 0票数 0

在设置完All-Auth应用程序之后,当用户登录时,他被重定向到:accounts/profile/页面,该页面告诉我们视图不存在。

我试图找出应该包含哪些内容,并决定允许用户更改他们的基本信息。

我有一个带有users模型的Teacher应用程序,其设置如下:

代码语言:javascript
复制
class Teacher(models.Model):
    user = models.ForeignKey(User, unique=True)
    rate = models.CharField(max_length=200)
    availability = models.BooleanField(default=False)
    verified = models.BooleanField(default=False)

我希望accounts/profile/页面显示包含此信息的表单。用户可以编辑这些字段,还可以编辑它们的Firstname、Lastname和Email,它们属于不同的模型-- User。

我似乎无法开始做这件事。当我为配置文件页面创建一个详细视图时,我看到一个错误:

没有PK或鼻涕虫

我希望Django更改当前用户的信息,而不是基于URL中的主键。我需要一个定制的视图吗?我看过[其他解决方案1,但它们似乎在使用私钥参数。

我需要的是一个工作视图函数,类似于(不工作的):

代码语言:javascript
复制
def get_teacher_info(request):
    current_user = request.user
    teacher = get_object_or_404(Teacher, username=current_user.username)
    return render(request, 'account/profile.html', {
            'user':current_user,
            'teacher': teacher,
            'error_message': "The field is blank",
        })

在accounts/urls.py中,我添加了:

代码语言:javascript
复制
url(r"^profile/$", views.get_teacher_info, name="account_profile"),

但是,当我在html模板中进行类似于{% teacher.rate %}的调用时,我会在第5行中得到:无效的块标记:'teacher.rate‘。你忘了注册或加载这个标签了吗?

EN

回答 2

Stack Overflow用户

发布于 2018-01-04 14:09:42

def get_teacher_info(请求)函数和urls.py条目正在工作。看起来问题可能在模板中。使用{{而不是{%标签。因此,请在模板中使用{{ teacher.rate }而不是{% teacher.rate %}。

票数 0
EN

Stack Overflow用户

发布于 2021-02-13 19:28:54

登录后重定向到/accounts/profile/是Django的默认行为。django-allauth正在使用来自Django设置的相同的默认行为。

现在,如果您想修改这个默认的重定向url,那么将它更改为

LOGIN_REDIRECT_URL = '/custom/redirect-url'

重要注意事项:没有启动/的,您要重定向到附加到当前/的路径。您需要使用前导斜杠重定向到附加到域根的路径。further details on it。简而言之,如果没有启动的/,您将以

../login/callback/custom.redirect-url (附在当前url后)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45746384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档