事先说几个坑:数据库定义字段时候,不要定义name 要定义 username
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(models.Model, models.Manager):
class Meta:
db\_table = 'user'
username = models.CharField(db\_column='username', max\_length=128, null=True)
text = models.CharField(db\_column='text', max\_length=128, null=True)
from rest_framework import serializers
from .models import User
class UserSerializers(serializers.ModelSerializer):
class Meta:
model = User # 指定序列化的model 是哪一个
fields = ['username', 'text'] # 指定需要序列化的字段
def create(self, validated\_data):
print(validated\_data)
return User.objects.create(\*\*validated\_data) # 这个create 调用的是类似QuerySet()这个类的方法,所以不会递归。
def update(self, instance, validated\_data):
print('-' \* 30, 'update')
# print(instance, validated\_data, '~~~~~~~~~~~~~~~~~')
instance.username = validated\_data.get('username')
instance.text = validated\_data.get('text')
instance.save()
return instance
from django.contrib import admin
from django.urls import path, includefrom hys import views
import hys
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.Index.as_view()) # views : views 文件 Index:视图类 as_view():调用方式(具体意思不是特别清楚)
]
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hys', # hys 为自己键的app 的名字
'rest_framework', # rest_framework 为rest_framework 架构, 如果想使用,需要在这里制定。
]
配上官网实例(讲的非常详细):https://www.django-rest-framework.org/
手机扫一扫
移动阅读更方便
你可能感兴趣的文章