Tôi có một mô hình Django:Django cứu mô hình với người dùng nặc danh
class Project(models.Model):
user = models.ForeignKey(User)
zipcode = models.CharField(max_length=5)
module = models.ForeignKey(Module)
Trong views.py tôi:
def my_view(request):
...
project = Project.objects.create(
user=request.user,
product=product_instance,
...
)
project.save()
Tôi muốn để có thể tiết kiệm được sử dụng như một người dùng xác thực HOẶC một AnonymousUser
(mà tôi có thể cập nhật sau). Tuy nhiên, nếu tôi không đăng nhập tôi nhận được lỗi này:
ValueError: Cannot assign "<django.utils.functional.SimpleLazyObject object at 0x1b498d0>": "Project.user" must be a "User" instance.
Tôi đoán rằng Django sẽ không lưu các AnonymousUser
vì nó không phải là một tài khoản theo quy định tại các mô hình User
. Tôi có cần phải thêm người dùng ẩn danh vào mô hình User
hay không, tôi có đang thiếu gì đó không?
Bất kỳ hỗ trợ nào được đánh giá cao.
Ok, tuyệt. Vì vậy, nếu tôi làm 'user = request.user' trên' AnonymousUser' thì trường sẽ trống và không có ngoại lệ nào được nâng lên? –
Một ngoại lệ sẽ được nâng lên vì bạn đã cung cấp dữ liệu không phù hợp cho trường. Chỉ cần làm 'nếu request.user.is_authenticated(): project.user = request.user' –
Tôi cũng phải thêm' null-True', vì trường không thể là 'null'? –