1
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 将保存在 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 数据库,我不知道为什么它在执行此查询时给我错误。请告诉我如何编写查询。

4

1 回答 1

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 模型上的便利属性,无论它是自动创建的还是明确指定的。

于 2013-11-05T11:51:58.243 回答