Не могу разобраться как работает вторичный ключ в 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()