使用序列化程序如何在 django rest 框架中创建类别
Using serializer how to Create Category in django rest framework
我想在 django rest 框架中使用序列化程序创建类别。
名称将从前端输入字段提供。
我从 user = request.user 得到 user_id,从 request.user.cafe 得到 cafe_id。
我需要创建名称为 user_id 和 cafe_id 的类别。
我该怎么做?
这是模型
class Category(models.Model):
user = models.ForeignKey(User, related_name="cat", blank=True, null=True, on_delete=models.CASCADE)
cafe = models.ForeignKey(Cafe, related_name="category", blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
class Meta:
verbose_name_plural='Categories'
def __str__(self):
return self.name
这是序列化程序
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['name']
和views.py
@api_view(['POST'])
@permission_classes((IsAuthenticated,))
def categoryCreate(request):
user = request.user
user_id = Category(user = user)
cafe = request.user.cafe
cafe_id = Category(cafe = cafe)
serializer = CategorySerializer(user_id, cafe_id, data=request.data)
data={}
if serializer.is_valid():
serializer.save()
data["success"] = "Category Has Been Created!"
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
提前致谢
你可以这样
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = "__all__"
class CafeSerializer(serializers.ModelSerializer):
class Meta:
model = Cafe
fields = "__all__"
class CategorySerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
cade = CafeSerializer(read_only=True)
class Meta:
model = Category
fields = ['name', 'user', 'cafe']
我想在 django rest 框架中使用序列化程序创建类别。 名称将从前端输入字段提供。 我从 user = request.user 得到 user_id,从 request.user.cafe 得到 cafe_id。 我需要创建名称为 user_id 和 cafe_id 的类别。 我该怎么做?
这是模型
class Category(models.Model):
user = models.ForeignKey(User, related_name="cat", blank=True, null=True, on_delete=models.CASCADE)
cafe = models.ForeignKey(Cafe, related_name="category", blank=True, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
class Meta:
verbose_name_plural='Categories'
def __str__(self):
return self.name
这是序列化程序
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['name']
和views.py
@api_view(['POST'])
@permission_classes((IsAuthenticated,))
def categoryCreate(request):
user = request.user
user_id = Category(user = user)
cafe = request.user.cafe
cafe_id = Category(cafe = cafe)
serializer = CategorySerializer(user_id, cafe_id, data=request.data)
data={}
if serializer.is_valid():
serializer.save()
data["success"] = "Category Has Been Created!"
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
提前致谢
你可以这样
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = "__all__"
class CafeSerializer(serializers.ModelSerializer):
class Meta:
model = Cafe
fields = "__all__"
class CategorySerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
cade = CafeSerializer(read_only=True)
class Meta:
model = Category
fields = ['name', 'user', 'cafe']