django - 使用序列化器如何在 django rest 框架中创建类别
问题描述
我想用序列化器在 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']
推荐阅读
- java - 如何通过 JComboBox 选择打开另一个 JFrame?
- python - 使用 groupby Pandas ValueError 填充缺失值
- python - 使用 Django admin_interface 不显示徽标
- php - 将卡片添加到 Laravel Jetstream / Livewire 配置文件表单
- vb.net - 如何修复 IndexOutOfRangeExecption 在 Visual Basic 中未处理
- javascript - 每次添加时如何从另一个组件获取不同的值?
- javascript - eModal 在 bootstrap 3 中加载 javascript 但在 bootstrap 4 中不起作用
- python - 在 ffmpeg 中使用 xfade 缩放视频时出错
- reactjs - ReactJS 中 Firebase 身份验证状态更改时设置状态
- reactjs - 将 id 传递给没有参数的 React 组件