私は、SocialProfileという名前の私のアプリに新しいモデルを追加しました。このモデルは、UserProfileモデルと1対1の関係を持つユーザーの社会関連のプロパティを保持する責任があります。これは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 & Googleプロフィールのための記録を保持します。問題は、新しいオブジェクトを作成しても実際にデータベースにレコードが追加されないということです。スクリプトや管理者でインスタンスを作成することはできません。スクリプトの場合は、次のエラーなしで実行されますが、にはレコードが作成されません:
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
あなたはUser Profileモデルも投稿できますか? –