gpt4 book ai didi

python - Django - 将用户包含在组中的问题

转载 作者:行者123 更新时间:2023-12-01 06:39:38 28 4
gpt4 key购买 nike

我正在使用django-groups-manager.

在我的项目中,用户可以在注册时创建一个组。注册后,用户可以进入自己创建的群组。我注册后收到此错误。我该如何解决这个问题?

TypeError at /accounts/register/

'Group' instance expected, got <-Group: Technology->

views.py

from groups_manager.models import Group, GroupType, Member

def register_view(request):
form = RegisterForm(request.POST or None)
if form.is_valid():
user = form.save()
new_group_name = form.cleaned_data['new_group_name']
new_group, created = Group.objects.update_or_create(name=new_group_name)
user.groups.add(Group.objects.get(name=new_group_name))
user.save()
password = form.cleaned_data.get('password1')
new_user = authenticate(username=user.username, password=password)
login(request, new_user)
return redirect('home')
return render(request, 'accounts/form.html', {'form': form, 'title': 'Üye Ol'})

代码中有问题的地方:

user.groups.add(Group.objects.get(name=new_group_name)) 

最佳答案

您在这里混合了两个同名的模型:(1) Group型号来自django.contrib.auth.models ,以及 (2) Group型号来自groups_manager.models .

Group您因此添加到 user.groups.add(..) 的对象是 Group第二 (2) 变体的对象。您可以通过导入 Group 来解决此问题型号来自django.contrib.auth.models模块,例如通过不同的名称:

from groups_manager.models import Group, GroupType, Member
from django.contrib.auth.models import Group as <b>AGroup</b>

def register_view(request):
form = RegisterForm(request.POST or None)
if form.is_valid():
user = form.save()
new_group_name = form.cleaned_data['new_group_name']
new_group, created = Group.objects.update_or_create(name=new_group_name)
user.groups.add(<b>AGroup</b>.objects.get(name=new_group_name))
user.save()
password = form.cleaned_data.get('password1')
new_user = authenticate(username=user.username, password=password)
login(request, new_user)
return redirect('home')
return render(request, 'accounts/form.html', {'form': form, 'title': 'Üye Ol'})

关于python - Django - 将用户包含在组中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com