2016-03-02 57 views
3

模型中有兩個類 - Task和TaskArchives。如果Task和TasksArchives中不存在,我需要創建一個新任務。我試着用and子句檢查DoesNotExist異常。但它不起作用。有人可以請建議一個不同的方法?如何在Python Django中創建一個新對象,如果它不存在於另外兩個類中?

for event in events: 
     try: 
      obj = Task.objects.get(task_id = event['id']) 
      obj_archive = TaskArchive.objects.get(task_id = event['id']) 

     except Task.DoesNotExist and TaskArchive.DoesNotExist: 
      obj = Task.objects.create(
      task_id = event['id'], 
      title = event['summary'], 
      created_by = User.objects.get(email=event['creator']['email']), 
      status = "upcoming", 
      due_date = event['start']['dateTime'] 
      ) 

在此先感謝, Reenu。

回答

2

您可以嘗試使用QuerySet的exists()函數。如果QuerySet包含任何結果,則返回True,否則返回False

所以,上面的例子中我會寫:

if not Task.objects.filter(task_id = event['id']).exists() and 
    not TaskArchive.objects.filter(task_id = event['id']).exists: 
    # no object satisfying query exists 
else: 
    # at least one object satisfying query exists 
+0

謝謝傑森!! –

+0

我剛剛解決它通過設置和增加一個標誌爲例外。但你的答案是最簡單的方法。謝謝。 –

相關問題