Как я могу сохранить значения с user.id в базу данных - Django - PullRequest
0 голосов
/ 19 мая 2019

Я хочу сохранить значения, которые пользователи вводят в репозиторий. Но если пользователь уже ввел значение, я хочу обновить его.

Он сохраняет данные прямо сейчас. Но он не может обновиться.

Я использую Django

forms.py

    class Meta():
        model = UserProfileInfo
        fields = ('apikey', 'apivalue', 'apisupplier')

views.py

def user_set_api(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=username, password=password)
        current_user = request.user
        user_form = UserProfileInfoForm(data=request.POST)
        user_id = current_user.id
        print('UserId:', user_id)
        if user_form.is_valid() and user_id:
            user_form.save(request.user)
            print('User: ', user, 'Userformid:', UserProfileInfo(['user_id']))
        else:
            print(user_form)
    else:
        keysvalue = UserProfileInfoForm()
    return render(request, 'form.html',
                  {'apisupplier': UserProfileInfo})

models.py

    user = models.OneToOneField(User, default=None, null=True, on_delete=models.CASCADE)
    apisupplier = models.CharField(max_length=40, blank=True, default="null")
    apikey = models.CharField(max_length=40, blank=True, default="null")
    apivalue = models.CharField(max_length=40, blank=True, default="null")

    def __str__(self):
        template = '{0.user} {0.apikey} {0.apivalue} {0.apisupplier}'
        return template.format(self)```

1 Ответ

0 голосов
/ 19 мая 2019

Я не уверен, почему вы передаете идентификатор пользователя в form.save ().Вам необходимо передать объект пользователя в экземпляр формы:

if request.method == 'POST':
    ...
    user_form = UserProfileInfoForm(data=request.POST, instance=request.user)
    if user_form.is_valid()
        user_form.save()
        ...
else:
    user_form = UserProfileInfoForm(instance=request.user)
return render(request, 'form.html',
              {'apisupplier': UserProfileInfo, "user_form": user_form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...