Tôi có một mô hình django mà lưu trữ dữ liệu người dùng và sản phẩm từ một hình thức đầu vào:Django lưu trữ dữ liệu người dùng vô danh
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"],
)
Tất nhiên điều này là tốt cho người sử dụng xác thực, nhưng tôi cũng muốn để có thể lưu trữ vô danh các dự án người dùng và nếu có thể, hãy liên kết chúng với người dùng khi họ đăng ký và xác thực.
Ý tưởng của tôi là tạo người dùng ẩn danh với tên = some_variable (dấu thời gian nối với một băm ngẫu nhiên?), Sau đó lưu tên người dùng đó vào dữ liệu phiên. Nếu tôi đảm bảo rằng biến phiên đó, nếu tồn tại, được sử dụng để ghi lại tất cả hoạt động dự án của người dùng đó, tôi sẽ có thể cập nhật các dự án với thông tin đăng nhập thực sự của người dùng khi họ đăng ký.
Điều này quá phức tạp và giòn? Tôi có nguy cơ tiết kiệm hàng ngàn hàng dữ liệu không cần thiết? Điều gì sẽ là phương pháp tối ưu cho vấn đề chung này?
Bất kỳ hướng dẫn nào về điều này sẽ được đánh giá cao.
Khi tôi gặp sự cố tương tự trong quá khứ, sự cố xảy ra khi bạn cần quay lại theo một hướng khác. Giống như nếu người dùng có thể có nhiều dự án và bạn cần thực hiện một số việc như xem phiên nào thích hai dự án cụ thể. – JeffS
Trong trường hợp của tôi, tôi muốn lưu trữ cả hai dữ liệu người dùng ẩn danh trong db và cũng liên kết nó với một người dùng cụ thể thông qua các phiên. Nếu 'user = request.user' trả về một đối tượng người dùng ẩn danh, sau này tôi không thể kết nối thông tin này với người dùng khi đăng ký. –
Trong trường hợp đó, ví dụ đầu tiên của tôi nên làm: thêm trường để giữ giá trị 'session_key' và sau đó bạn có thể truy xuất cá thể Project mong muốn và liên kết nó với người dùng mới khi người dùng ẩn danh ngừng ẩn danh :-) –