如何从 Django 中创建的对象中获取 ID
How to get id from created object in Django
我有型号:Group
和 Member
s。
Group
有很多成员,但是当创建 Group
时,currentUser
会自动变成 Member
。
我在单个请求中执行所有操作,但在获取 id createdGroup
.
时遇到问题
我的模特:
class Group(models.Model):
groupName = models.CharField(max_length=100)
description = models.CharField(max_length=255)
inviteKey = models.UUIDField(default=uuid.uuid4,
unique=True,
editable=False)
class Members(models.Model):
userId = models.ForeignKey(User, on_delete=models.CASCADE)
groupId = models.ForeignKey(Group, on_delete=models.CASCADE)
表格:
class GroupForm(forms.ModelForm):
groupName = forms.CharField(label='Name', max_length=100)
description = forms.CharField(label='Description', max_length=255)
inviteKey: forms.CharField(label='Invite Key')
class Meta:
model = Group
fields = ['groupName', 'description']
查看:
def createGroup(request):
if request.method == "POST":
form = GroupForm(request.POST)
if form.is_valid():
form.save()
currentUser = request.user
print('group id', request.POST.get('id', ''))
#after group creation i would add current member
addMember(currentUser, True, True) # should be currentUser, createdGroup, True
messages.success(request, f'Group created')
return redirect('/')
else:
form = GroupForm()
return render(request, 'group/createGroup.html',{'form': form})
如何获取新创建的Group
的id?
我试过这样的事情:
group = request.POST.get('id', '')
当我 console.log(request.POST)
我只得到(名称,描述)
试试这个:
new_group = form.save()
id = new_group.id
id 是在您保存由请求触发的表单时创建的...所以它不能在请求中!
我有型号:Group
和 Member
s。
Group
有很多成员,但是当创建 Group
时,currentUser
会自动变成 Member
。
我在单个请求中执行所有操作,但在获取 id createdGroup
.
我的模特:
class Group(models.Model):
groupName = models.CharField(max_length=100)
description = models.CharField(max_length=255)
inviteKey = models.UUIDField(default=uuid.uuid4,
unique=True,
editable=False)
class Members(models.Model):
userId = models.ForeignKey(User, on_delete=models.CASCADE)
groupId = models.ForeignKey(Group, on_delete=models.CASCADE)
表格:
class GroupForm(forms.ModelForm):
groupName = forms.CharField(label='Name', max_length=100)
description = forms.CharField(label='Description', max_length=255)
inviteKey: forms.CharField(label='Invite Key')
class Meta:
model = Group
fields = ['groupName', 'description']
查看:
def createGroup(request):
if request.method == "POST":
form = GroupForm(request.POST)
if form.is_valid():
form.save()
currentUser = request.user
print('group id', request.POST.get('id', ''))
#after group creation i would add current member
addMember(currentUser, True, True) # should be currentUser, createdGroup, True
messages.success(request, f'Group created')
return redirect('/')
else:
form = GroupForm()
return render(request, 'group/createGroup.html',{'form': form})
如何获取新创建的Group
的id?
我试过这样的事情:
group = request.POST.get('id', '')
当我 console.log(request.POST)
我只得到(名称,描述)
试试这个:
new_group = form.save()
id = new_group.id
id 是在您保存由请求触发的表单时创建的...所以它不能在请求中!