Cannot assign "<django.contrib.auth.models.AnonymousUser object at 0x000001DB4E964110>": "Post.user" must be a "User" instance.这个问题怎么解决
时间: 2023-07-19 13:15:08 浏览: 207
这个问题出现的原因是你在给 `Post` 对象的 `user` 属性赋值时传入了一个 `AnonymousUser` 对象,而 `Post` 模型的 `user` 字段需要的是一个 `User` 对象。
要解决这个问题,你需要在给 `Post` 对象的 `user` 属性赋值时使用一个 `User` 对象。你可以通过获取当前登录用户的方式来获取一个 `User` 对象,例如:
```python
from django.contrib.auth.decorators import login_required
@login_required
def create_post(request):
# 获取当前登录的用户对象
user = request.user
# 创建新的 Post 对象,并将 user 属性设置为当前用户
post = Post.objects.create(user=user, ...)
...
```
这样就可以避免将 `AnonymousUser` 对象赋值给 `Post` 对象的 `user` 属性了。
阅读全文