related_name
2063 ワード
related.name
ドラムにモデルをセットする場合は、
Foreign
キー、後にrelated_name
キーをセットします.related nameを設定するのはドラムのORM機能を利用するためです.
class Comment(models.Model):
User = models.ForeignKey(User, on_delete=models.CASCADE, related_name= comment)
参照する値をrelated nameに書き込む場合はsetを使用する必要はありません.モデルを作成すると、逆参照になります.
user.comment.all()は、ユーザーのすべてのコメントを取得できます.
related name=userとしてcommentモデルはuserを参照
書き間違えた場合もあります.
このモデルに基づいてではなく、前に使用した変数値に基づいています.
思い出して気持ちがいい
レコーダ
def login_decorator(func):
def wrapper(self, request, *args, **kwargs):
try:
access_token = request.headers.get('Authorization') (1)
payload = jwt.decode(access_token, SECRET_KEY, algorithms=ALGORITHM) (2)
user = User.objects.get(id=payload['id']) (3)
request.user = user (4)
except jwt.exceptions.DecodeError:
return JsonResponse({'message' : 'INVALID_TOKEN' }, status=400)
except Account.DoesNotExist:
return JsonResponse({'message' : 'INVALID_USER'}, status=400)
return func(self, request, *args, **kwargs)
return wrapper
長い間悩んでいたTokenDecoratorです.1番からコードを順番に見ると.
1.フロントで送信されたタイトルの認証におけるトークン値を取得します.
2.我々がエンコードした秘密鍵とALL値を使用して、インポートしたトークンをjwtに復号する.
3.ユーザのid値と復号化のペイロード値とが同じ値を取得する.(ここのユーザを識別)
4. request.この値をuserに挿入します.
最初は和弦を見て迷いました...1行1行見て、そのまま実行して理解しました.
特にrequestuser=userという部分はよくわかりません
(request.user空間は既に存在し、そこに値を与えると考えられています.)
related_name= comment
関数を使用してrequestを表示すると、3番目に新しいuserが生成されることが分かった.ソース
https://velog.io/@devmin/Django-decorator-login-token-basic
Reference
この問題について(related_name), 我々は、より多くの情報をここで見つけました https://velog.io/@pang/relatednameテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol