设置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/
页面显示包含此信息的表单。用户可以编辑这些字段,还可以编辑属于不同模型的名字,姓氏和电子邮件 - User
。
我似乎无法开始这项工作。当我为个人资料页面创建详细视图时,我收到错误消息:
未提供PK或SLUG
我希望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'。您是否忘记注册或加载此标记?
答案 0 :(得分:0)
def get_teacher_info(request)函数和urls.py条目正在运行。看起来问题可能出在模板中。使用{{而不是{%tags。因此,请在模板中使用{{teacher.rate}}而非{%teacher.rate%}。
答案 1 :(得分:0)
登录后重定向到 /accounts/profile/
是 Django 的默认行为。 django-allauth
使用与 Django 设置相同的默认行为。
现在如果你想修改这个默认的重定向 url 然后把它改成
LOGIN_REDIRECT_URL = '/custom/redirect-url'
重要说明:如果没有开头的 /
,您将重定向到附加到当前 URL 的路径。您需要使用前导斜杠重定向到附加到域根目录的路径。 further details on it。简而言之,如果没有开始 /
,您将得到
../login/callback/custom.redirect-url
(附加到当前网址)