6
我有一個Django模型:Django的保存模型匿名用戶
class Project(models.Model):
user = models.ForeignKey(User)
zipcode = models.CharField(max_length=5)
module = models.ForeignKey(Module)
在我views.py:
def my_view(request):
...
project = Project.objects.create(
user=request.user,
product=product_instance,
...
)
project.save()
我希望能夠給用戶保存爲身份驗證的用戶或AnonymousUser
(我可以稍後更新)。但是,如果我沒有登錄我得到這個錯誤:
ValueError: Cannot assign "<django.utils.functional.SimpleLazyObject object at 0x1b498d0>": "Project.user" must be a "User" instance.
我猜Django會不會保存AnonymousUser
,因爲它不是作爲User
模型中定義的用戶。我是否需要將匿名用戶添加到User
模型,還是我錯過了某些內容?
任何幫助非常感謝。
好吧,太好了。因此,如果我在'AnonymousUser'上執行'user = request.user',那麼這個字段將是空白的,並且不會引發異常? –
由於您向該字段提供了不適當的數據,因此將引發異常。只要執行'if request.user.is_authenticated():project.user = request.user' –
我還必須添加'null-True',因爲該字段不能爲空嗎? –