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.