Как при создании объектов использовать условие Python

Есть условие перед записью в БД

        if data['data']['category']['id'] == '5297':
            catid= 2
        elif data['data']['category']['id'] == '5298':
            catid = 3
        elif data['data']['category']['id'] == '5299':
            catid = 4
     
        else:
            catid=None

Записываю в БД вот так:

News.objects.create(                    
                image=new_preview_img_url,                    
                category=NewsCategory.objects.get(id=catid), 
                body=new_body,
            )

Мне нужно в случае, когда catid == None

Записать в category None. Как-то примерно так:

News.objects.create(                    
                image=new_preview_img_url,                    
                     if catid is not None:
                        category=NewsCategory.objects.get(id=catid),
                     else:
                        category = None,
                body=new_body,
            )

Но так не выходит, так синтаксически вообще возможно сделать?


Ответы (1 шт):

Автор решения: Алексей Власов

Да, можно:

News.objects.create(                    
                image=new_preview_img_url,                  
                category=NewsCategory.objects.get(id=catid) if catid is not None else None,
                body=new_body,
            )

То есть:

...
category=NewsCategory.objects.get(id=catid) if catid is not None else None
...

Или так:

...
category=NewsCategory.objects.get(id=catid) if (catid is not None) else None
...
→ Ссылка