ValueError: Поле 'id' ожидало число, но получило nan
Я пытаюсь импортировать пользователей в базу данных с помощью bulk create, но получаю исключение ValueError: Поле 'id' ожидало число, но получило nan.
Я получаю исключение при массовом создании профилей.
def import_users(csv_file):
df = pd.read_csv(io.StringIO(csv_file.decode('utf-8')))
users = []
profiles = []
for index, row in df.iterrows():
user = User()
user.username = row['username']
user.password = make_password(str(row['password']))
user.first_name = row['firstname']
user.last_name = row['lastname']
user.is_active = True
user.email = row.get('email', None)
user.profile = Profile()
user.profile.app_id = row['app_id']
user.profile.company_id = row['company_id']
user.profile.user = user
users.append(user)
profiles.append(user.profile)
try:
users = User.objects.bulk_create(users, ignore_conflicts=False)
except Exception as e:
LOGGER.exception(str(e))
try:
Profile.objects.bulk_create(profiles, ignore_conflicts=False)
except Exception as e:
LOGGER.exception(str(e))
Модель для профиля:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
company = models.ForeignKey(to='Company', on_delete=models.SET_NULL, null=True)
app = models.ForeignKey(to='App', default=1000, on_delete=models.SET_DEFAULT, null=False)
Я проверил это решение на SO, но мне не помогло.