django - request.user 即使用户登录也返回 AnonymousUser
问题描述
我想在将对象保存到数据库时创建一个用户,但每次它说用户是 AnonymousUser 即使用户已登录,下面是一个片段,任何帮助将不胜感激。
def post(self, request):
response = json.loads(self.request.body.decode('utf-8'))
result_code = response["Body"]["stkCallback"]["ResultCode"]
if result_code == 0:
if response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][2]["Name"] == 'Balance':
del response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][2]
amount = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][0]["Value"]
mpesa_receipt_number = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][1]["Value"]
transaction_date = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][2]["Value"]
phone_number = response["Body"]["stkCallback"]["CallbackMetadata"]["Item"][3]["Value"]
str_transaction_date = str(transaction_date)
transaction_datetime = datetime.strptime(
str_transaction_date, "%Y%m%d%H%M%S")
aware_transaction_datetime = pytz.utc.localize(
transaction_datetime)
our_model = Mpesa.objects.create(
Paid_user=request.user
MpesaReceiptNumber=mpesa_receipt_number,
PhoneNumber=phone_number,
Amount=amount,
TransactionDate=aware_transaction_datetime,
)
our_model.save()
解决方案
你需要permission_classes
像这样在你的视图中添加 -
from rest_framework.permissions import IsAuthenticated
class SomeView(APIView):
permission_classes = [IsAuthenticated]
def post(self, request, format=None):
# now here in your post you will be able to use `request.user` to know the user requesting this view.
pass
我希望这就是你要找的。
推荐阅读
- r - 自动检测存在多重共线性问题的项目
- java - 在 C++ 中是否有等效的 TreeSet 数据结构具有类似的功能
- javascript - 具有匿名函数的事件侦听器(typeError,toggle undefined)
- python - python:for循环不区分动作
- python-3.x - ValueError:未找到子字符串
- javascript - 我的要求是我想在关闭浏览器选项卡或窗口时向用户显示一条消息
- c++ - 使用自定义 gcc 位置构建包
- kotlin - Zip 3 等长列表
- python - 如何从另一个数组中的某些元素创建数组?
- c# - 在 GeckoFx 中获取选定的特征属性