CurrentUserDefault不';使用Django Rest无法工作
我正在使用Django/Django Rest框架,我正在寻找一种自动插入记录的用户id的解决方案 我尝试使用,CurrentUserDefault不';使用Django Rest无法工作,django,django-rest-framework,Django,Django Rest Framework,我正在使用Django/Django Rest框架,我正在寻找一种自动插入记录的用户id的解决方案 我尝试使用,user=serializers.HiddenField(default=serializers.CurrentUserDefault()): 但我不工作 这是我的序列化程序类 from rest_framework import serializers from contact.models import Contact class ContactSerializer(serial
user=serializers.HiddenField(default=serializers.CurrentUserDefault())
:
但我不工作
这是我的序列化程序类
from rest_framework import serializers
from contact.models import Contact
class ContactSerializer(serializers.ModelSerializer):
user = serializers.HiddenField(default=serializers.CurrentUserDefault())
class Meta:
model = Contact
fields = '__all__'
我的看法是:
class ContactView(ListModelMixin, viewsets.GenericViewSet):
queryset = Contact.objects.all()
serializer_class = ContactSerializer
def create(self, request):
serializeObject = ContactSerializer(data = request.data, many=True)
if serializeObject.is_valid():
serializeObject.save()
contactObject = Contact.objects.all()
contactSerializer = ContactSerializer(contactObject, many=True)
return Response(contactSerializer.data, status = status.HTTP_201_CREATED)
return Response(serializeObject.errors, status.HTTP_400_BAD_REQUEST)
使用
CurrentUserDefault
时,需要将上下文中的请求传递给序列化程序,因为序列化程序将从中获取当前用户。见:
class ContactView(ListModelMixin,ViewSet.GenericViewSet):
queryset=Contact.objects.all()
serializer\u class=ContactSerializer
def创建(自我,请求):
serializeObject=ContactSerializer(data=request.data,many=True,context={'request':request})
...
请显示使用此序列化程序的视图。@AbdulAzizBarkat您能再次检查我的问题吗(更新)