【发布时间】:2021-03-17 04:47:13
【问题描述】:
我创建了一个 Author 模型,其中它与默认 Django 用户具有 OneToOne 关系,如下所示:
from django.contrib.auth.models import User
from django.db import models
class Author(models.Model):
user = models.OneToOneField(
User,
related_name='author',
on_delete=models.CASCADE,
default="",
)
is_author = models.BooleanField(
default=True
)
在这里我创建了以下视图集:
class AuthorViewSet(viewsets.ModelViewSet):
serializer_class = AuthorSerializer
queryset = Author.objects.all()
def get_permissions(self):
if self.action == "list" or self.action == "retrieve" or self.action == "update":
self.permission_classes = [IsCurrentOwner, permissions.IsAdminUser]
elif self.action == "create":
self.permission_classes = [permissions.AllowAny]
return super(AuthorViewSet, self).get_permissions()
问题 有什么方法可以一步创建user 和author(请求)?怎么样?
序列化代码:
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = "__all__"
extra_kwargs = {
'password': {'write_only': True},
'id': {'read_only': True}
}
我已经尝试了以下请求,但它不起作用。
#url: localhost:8000/users/
#method: POST
{
"user": {
"username": "mostafa",
"password": "1"
}
}
错误:
{
"user": [
"Incorrect type. Expected pk value, received dict."
]
}
【问题讨论】:
标签: python django django-rest-framework