RaviKiran
RaviKiran

Reputation: 803

Not able to get the id of the group

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

If in the data that I get 'is_admin' is true then I will create the group 'Admin' if not existed then save it and fetches the id of that group-'Admin'. This id will be saved in the userinfo with Group as a foreign key. The following query should give me the id of that group.

group_id = Group.objects.get(name='admin').id 

 Instead it is saying

current transaction is aborted, commands ignored until end of transaction block

I am using the postgresql database I don't know why it is giving me the error while executing this query. Please tell me how to write the query.

Upvotes: 1

Views: 59

Answers (1)

J0HN
J0HN

Reputation: 26941

What are you trying to achieve is already in django: get_or_create. Using this your code should look like

group, created = Group.objects.get_or_create(name='Admin')
if created:
    log.info("Admin Group already exists")
group_id = group.pk

pk is a convenience property on all django models that always point to a primary key field, no matter if it's autocreated or specified explicitly.

Upvotes: 1

Related Questions