Я добавил новую модель в мое приложение с именем SocialProfile, которое отвечает за сохранение социальных свойств пользователя, который имеет отношения «один к одному» с моделью UserProfile. Это модель SocialProfile в models.py:django model create не работает
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
Можете ли вы опубликовать свою модель профиля пользователя? –