Django przechowujący anonimowe dane użytkownika

Mam model django, który przechowuje dane użytkownika i produktu z danych wejściowych formularza:

def ProductSelection(request, template_name='product_selection.html'):
    ...
    if user.is_authenticated():
        user = request.user
    else:
        # deal with anonymous user info
    project = Project.objects.create(
        user=user,
        product=form.cleaned_data["product"],
        quantity=form.cleaned_data["product_quantity"],
    )

Oczywiście jest to w porządku dla uwierzytelnionych użytkowników, ale chcę też mieć możliwość przechowywania anonimowych projektów użytkowników i, jeśli to możliwe, skojarzyć je z użytkownikiem, gdy ostatecznie się zarejestrują i uwierzytelnią.

Moim pomysłem jest stworzenie anonimowego użytkownika o nazwie = some_variable (znacznik czasu połączony z losowym hashem?), A następnie zapisanie tej nazwy użytkownika w danych sesji. Jeśli upewnię się, że ta zmienna sesyjna, jeśli istnieje, jest używana do rejestrowania wszystkich działań tego użytkownika w ramach projektów, powinienem być w stanie zaktualizować projekty przy użyciu rzeczywistych danych uwierzytelniających użytkownika podczas rejestracji.

Czy to zbyt skomplikowane i kruche? Czy ryzykuję niepotrzebne oszczędzanie tysięcy wierszy danych? Jakie byłoby optymalne podejście do tego powszechnego problemu?

Wszelkie wskazówki na ten temat byłyby bardzo mile widziane.

questionAnswers(2)

yourAnswerToTheQuestion