Не могу разобраться как работает вторичный ключ в Django

Создал модель Баланс пользователей, в нем вторичный ключ user.

class UserBalance(models.Model):
    class Meta:
        verbose_name = 'Баланс пользователя'
        verbose_name_plural = 'Баланс пользователей'

    user = models.OneToOneField(User, on_delete=models.CASCADE, verbose_name='Логин пользователя')
    balance = models.IntegerField(verbose_name='Баланс')
    objects = models.Manager()

Я не знаю как редактировать и создавать новые записи в этой Модели, т.е как обращаться к полю user ? В интернете посмотрел такой вариант для вывода баланса:

UserBalance.objects.get(user__username=request.user.username).balance

А как создать новую запись ? Такой вариант не работает:

UserBalance.objects.create(user__username=request.user.username, balance=1000)

Ответы (1 шт):

Автор решения: Alpensin
UserBalance.objects.create(balance=1000, user=request.user)

Для такого рода полей, которые ссылаются на другие модели, надо передавать экземпляр класса той модели, на которую мы ссылаемся. В нашем случае user, который получается из http запроса.

Ещё вариант создания записи:

balance = UserBalance(balance = 1000, user=request.user)
balance.save()
→ Ссылка