我向我的應用程序添加了一個名爲SocialProfile的新模型,該模型負責保持與UserProfile模型具有一對一關係的用戶的社交相關屬性。這是在models.py的SocialProfile型號:django模型創建不起作用
class SocialProfile(models.Model):
profile = models.OneToOneField('UserProfile', on_delete=models.CASCADE)
facebook_profiles = models.ManyToManyField('FacebookContact', related_name='synced_profiles', blank=True)
google_profiles = models.ManyToManyField('GoogleContact', related_name='synced_profiles', blank=True)
hash = models.CharField(max_length=30, unique=True, blank=True)
def save(self, *args, **kwargs):
if not self.pk:
hash = gen_hash(self.id, 30)
while SocialProfile.objects.filter(hash=hash).exists():
hash = gen_hash(self.id, 30)
self.hash = hash
def __str__(self):
return str(self.profile)
現在,我保持一個記錄同步Facebook的谷歌&型材。現在,問題在於創建新對象實際上並沒有在數據庫中添加任何記錄。我無法使用腳本或管理員創建實例。在腳本的情況下,沒有錯誤以下運行,但不生成記錄:
for profile in UserProfile.objects.all():
sp = SocialProfile.objects.create(profile=profile)
print(profile, sp)
SocialProfile.objects.count()
打印件完成,看起來是正確的和計數()返回0。我試圖創建在管理對象,但我得到的以下錯誤:
"{{socialprofile object}}" needs to have a value for field "socialprofile" before
this many-to-many relationship can be used.
我認爲這是一個問題,因爲如果我評論了許多一對多的關係,它完成,沒有錯誤(還沒有新的記錄)。我提到它,如果它可能有幫助。
我檢查了數據庫,表在那裏,沒有檢測到新的遷移。
任何有關可能是什麼問題的幫助和想法,將不勝感激!
我甚至刪除了我的數據庫並創建了一個新的數據庫,仍然發生了同樣的情況。 – user24353
你可以發佈你的用戶檔案模型嗎? –