【发布时间】:2016-06-09 01:52:11
【问题描述】:
我想在 django rest 框架模型中创建一个 created_by 字段。
它应该包含当前登录用户的user_id,并且它应该是我不需要在JSON格式的POST请求期间发送它,它应该来自请求本身,我如何使用django rest框架序列化程序来实现它。
models.py 文件:
class Company(models.Model):
"""Company model for information about company."""
created_by = models.ForeignKey(User, null= True, blank= True, on_delete=models.CASCADE)
company_name = models.CharField(max_length=100)
serializers.py 文件:
class CompanySerializer(serializers.ModelSerializer):
"""Serializer for companies."""
class Meta:
model = Company
fields = ('id', 'created_by', 'company_name')
v1.py 文件:
class CompanyList(APIView):
"""Get and post companies data."""
def get(self, request, format=None):
"""Get companies data.."""
companies = Company.objects.all()
serialized_companies = CompanySerializer(companies, many=True)
return Response(serialized_companies.data)
def post(self, request, format=None):
"""Post companies data."""
serializer = CompanySerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
【问题讨论】:
标签: django python-2.7 django-models django-rest-framework django-serializer