在设置完All-Auth应用程序之后,当用户登录时,他被重定向到:accounts/profile/页面,该页面告诉我们视图不存在。
我试图找出应该包含哪些内容,并决定允许用户更改他们的基本信息。
我有一个带有users模型的Teacher应用程序,其设置如下:
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,但它们似乎在使用私钥参数。
我需要的是一个工作视图函数,类似于(不工作的):
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中,我添加了:
url(r"^profile/$", views.get_teacher_info, name="account_profile"),但是,当我在html模板中进行类似于{% teacher.rate %}的调用时,我会在第5行中得到:无效的块标记:'teacher.rate‘。你忘了注册或加载这个标签了吗?
发布于 2018-01-04 14:09:42
def get_teacher_info(请求)函数和urls.py条目正在工作。看起来问题可能在模板中。使用{{而不是{%标签。因此,请在模板中使用{{ teacher.rate }而不是{% teacher.rate %}。
发布于 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后)
https://stackoverflow.com/questions/45746384
复制相似问题