我是创建 REST API 的新手,所以我可能会误解一些东西。 我正在使用 Django Rest Framework 创建 REST API。我正在尝试创建一个对象并从我的移动应用程序发送它。
但是,API 返回 400。我认为它仍然无法将对象与请求用户相关联,我想知道该怎么做。
模型.py
class Item(models.Model):
item_name = models.CharField()
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
serializers.py
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('item_name', 'created_by')
和views.py
class ListItems(generics.ListCreateAPIView):
queryset = Item.objects.all()
serializer_class = ItemSerializer
我想知道的是像我们这样发布对象时,如何将对象与请求用户关联起来
if form.is_valid():
item = form.save(commit=False)
item.created_by = request.user
item.save()
最佳答案
我认为最简单的方法是这样的:
class ItemSerializer(serializers.ModelSerializer):
created_by = serializers.HiddenField(
default=serializers.CurrentUserDefault()
)
可以找到引用here
关于Django 休息框架 : How to associate the object with the user when posting the object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54921401/