我現在生氣了 - 我無法創建新的團隊實例。 Django中始終顯示錯誤:'Team' instance needs to have a primary key value before a many-to-many relationship can be used.
實例在可以使用多對多關係之前需要具有主鍵值
這裏是我的模型:
from django.contrib.auth.models import User
from django.db import models
class Team(models.Model):
name = models.CharField(max_length=10)
members = models.ManyToManyField(User)
def save(self, *args, **kwargs):
if self.pk:
# for later use
pass
super(Team, self).save(*args, **kwargs)
現在,我想創建一個新的團隊...
from django.contrib.auth.models import User
from models import Team
user_obj = User.objects.get(pk=1)
new = Team()
new.name = 'aaa'
new.save()
new.members.add(user_obj)
可能有人看到錯誤?
編輯 我讀過的文檔,這(很大)答案How to create an object for a Django model with a many to many field? - 仍然無法弄清楚什麼是錯的
此代碼看起來正確。也許錯誤位於其他地方?這是你的整個代碼還是被截斷?你能發佈完整的堆棧跟蹤嗎? – Jingo
有一個自定義的保存方法 - 但它只調用超級(團隊,自我)...' - 這是堆棧跟蹤:http://dpaste.com/814410/ – Thomas
我能看到這種情況發生的唯一方法是,以某種方式你的save()方法沒有提交到數據庫。請包含您的自定義save()方法的代碼。 – drewman