我正在django rest框架的帮助下构建一个用户注册的应用程序,我想将我的用户数据存储在我的postgresql数据库中,我可以在我的pgAdmin上看到我的模型,但在提出注册我的用户的post请求后,我无法在数据库中检索我的数据。
那么,我如何将这些数据保存在数据库中呢?
型号.py
from django.db import models
# Create your models here.
class User(models.Model):
username = models.TextField()
email = models.TextField()
password = models.TextField()
serializers.py
from rest_framework import generics, permissions
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ( 'username', 'email', 'password')
def create(self, validated_data):
user = super(UserSerializer, self).create(validated_data)
user.set_password(validated_data['password'])
user.save()
return user
views.py
from rest_framework import generics
from rest_framework.permissions import AllowAny
from .models import User
from .serializers import UserSerializer
class UserCreateAPIView(generics.CreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = (AllowAny,)
主项目urls.py文件:
from django.contrib import admin
from django.urls import include , path
urlpatterns = [
path('', include('templateApp.urls')),
path('admin/', admin.site.urls),
]
应用程序urls.py文件:
from .views import UserCreateAPIView
from django.urls import path
urlpatterns = [
path('api/register/', UserCreateAPIView.as_view(), name='register'),
]
我使用了api/login/并以这种格式传递了用户名和密码-{"用户名":"trevor";,"密码":"Password@123"}
并在LoginAPI.view((上得到了-的响应
{"到期":";令牌">:cef5d74b1e8fba6b5f496e7d8d0674505f45ac6f62a0d6aa9ac061bccb8b7d}
然后在终端上,我使用了命令-
curl -X POST http://127.0.0.1:8000/api/logout/ -H 'Authorization: Token cef5dd74b1e8fba6b5f496e7de8d0674505f45ac6f62a0d6aa9ac061bccb8b7d'
令牌在此之后被删除。
您可以在验证所有这些http://127.0.0.1:8000/admin在knox代币下。
我希望这能帮助