Django - обновление вместо сохранения новой формы в БД

У меня есть forms.py, включающий несколько полей.

from django import forms
from .models import TwitterContainer


class TwitterUpdateForm(forms.ModelForm):
    class Meta:
        model = TwitterContainer
        fields = ["Twitter_API_key", "Twitter_API_key_secret", "Twitter_API_token", "Twitter_API_token_secret"]

Это мой models.py

from tkinter import CASCADE
from urllib import request
from django.db import models
from django.contrib.auth.models import User


# Create your models here. twitter_container-app

class TwitterContainer(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    Twitter_API_key = models.CharField(max_length=110, default='default')
    Twitter_API_key_secret = models.CharField(max_length=110, default='default')
    Twitter_API_token = models.CharField(max_length=110, default='default')
    Twitter_API_token_secret = models.CharField(max_length=110, default='default')
    
    def __str__(self):
        if not self.user:
            return 'Anonymous'
        return f'{self.user.username} Twitter Container'
    
    def save(self, *args, **kwargs):
        super().save()
        """_summary_
        """        

И мой views.py

from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from .forms import TwitterUpdateForm
from .models import TwitterContainer

@login_required
def twitter(request):
    if request.method == 'POST':
        tw = TwitterUpdateForm(request.POST)
        
        if tw.is_valid:
            obj = tw.save(commit=False)
            obj.user = request.user
            obj.save()
            messages.success(request, f'NICE!')
            return redirect ('twitter')
    else:
        tw = TwitterUpdateForm()
        
    context = {'tw': tw}
    
    return render(request, 'twitter_container/twitter_container.html', context)

У меня есть сигналы, которые автоматически создают новую форму для нового зарегистрированного пользователя со значениями по умолчанию.

Все работает почти нормально, зарегистрированный пользователь заполняет поля и отправляет форму. Данные попадают в базу данных, и все в порядке. Что я хотел бы сделать, так это вместо того, чтобы каждый раз создавать новую форму для пользователя, я просто хочу обновить значения формы для пользователя.

Например, когда я зарегистрирован как icek, я могу отправить форму 5 раз и в базе данных это будет выглядеть так - https://imgur.com/Og6lzTJ

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

Вернуться на верх