【问题标题】:how to assign a value to new user in django如何在 django 中为新用户赋值
【发布时间】:2021-11-30 18:56:02
【问题描述】:

我正在 django 中编写逻辑,新创建的用户在点击注册按钮时会自动获得免费会员资格,我尝试了不同的解决方案来解决此问题

views.py

def register(request):
    reviews = Review.objects.filter(status='published')
    info = Announcements.objects.all()
    categories = Category.objects.all()
    if request.method == "POST":
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            obj = request.user
            get_membership = Membership.objects.get(membership_type='Free')
            # error is showing "instance" is not access using visual studio code
            instance = UserMembership.objects.create(user=obj, membership=get_membership)

            messages.success(request, f'Account Successfully created for {username}! You can Login In Now')
            return redirect('userauths:login')
    elif request.user.is_authenticated:
            return redirect('elements:home')
    else:
        form = UserRegisterForm()
    context = {
        'reviews': reviews,
        'form': form,
        'info': info,
        'categories': categories
    }
    return render(request, 'userauths/register.html', context)

【问题讨论】:

  • 错误显示,缩进有错误。 Python 必须使用 4 个空格缩进。请检查您的代码

标签: python django view orm


【解决方案1】:

此处出现缩进错误:

elif request.user.is_authenticated:
        return redirect('elements:home')
else:
    form = UserRegisterForm()

您只需点击一次。不是两次。

elif request.user.is_authenticated:
    return redirect('elements:home') 
else:
    form = UserRegisterForm()

【讨论】:

  • 我已经修复了您注意到的错误,但它仍然显示红色下划线,请您看看我现在更新的图像
猜你喜欢
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
相关资源
最近更新 更多