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」が true の場合、存在しない場合はグループ「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 データベースを使用していますが、このクエリの実行中にエラーが発生する理由がわかりません。クエリの書き方を教えてください。

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 に答える