无法获得该组的ID

时间:2013-11-05 11:28:31

标签: python django python-2.7

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 - '管理员'。此ID将保存在userinfo中,其中Group为外键。    以下查询应该为我提供该组的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数据库我不知道为什么它在执行此查询时给我错误。请告诉我如何编写查询。

1 个答案:

答案 0 :(得分:1)

你想要实现的目标已经在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模型的便利属性,它始终指向主键字段,无论它是自动处理还是显式指定。