if is_admin == True:
admin_users = Group(name = 'Admin')
try:
admin_users.save()
except:
log.info("Admin Group already exists")
pass
group_id = Group.objects.get(name='Admin').id
如果在数据中我得到的“is_admin”为真,那么我将创建组“Admin”(如果不存在),然后保存它并获取该组的 ID -“Admin”。该id将以Group作为外键保存在userinfo中。 以下查询应该给我该组的 ID。
group_id = Group.objects.get(name='admin').id
Instead it is saying
current transaction is aborted, commands ignored until end of transaction block
我正在使用 postgresql 数据库,我不知道为什么它在执行此查询时给我错误。请告诉我如何编写查询。
最佳答案
你想要实现的目标已经在 django 中:get_or_create 。使用这个你的代码应该看起来像
group, created = Group.objects.get_or_create(name='Admin')
if created:
log.info("Admin Group already exists")
group_id = group.pk
pk
是所有 django 模型上的一个便利属性,它始终指向主键字段,无论它是自动创建的还是显式指定的。
关于python - 无法获取群组id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19787937/