Django rest framework 在将数据保存到数据库之前,如何自定义CreateModelMixin
我想将登录用户分配给模型,但执行创建不工作 有没有关于如何解决这个问题的帮助 OkHttp:{“聚合器”:[“无效pk”0”-对象不存在。“]} seliarizer.py 模型Django rest framework 在将数据保存到数据库之前,如何自定义CreateModelMixin,django-rest-framework,Django Rest Framework,我想将登录用户分配给模型,但执行创建不工作 有没有关于如何解决这个问题的帮助 OkHttp:{“聚合器”:[“无效pk”0”-对象不存在。“]} seliarizer.py 模型 您是否在views.py(位于FarmerViewset)中使用了permission\u classes=(IsAuthenticated,)。您是否也在下面的行中添加了settings.py REST_框架={ “默认\u身份验证\u类”:( 'rest_framework.authentication.Toke
您是否在
views.py
(位于FarmerViewset
)中使用了permission\u classes=(IsAuthenticated,)
。您是否也在下面的行中添加了settings.py
REST_框架={
“默认\u身份验证\u类”:(
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
“默认权限类”:(
'rest_framework.permissions.IsAuthenticated',
),
}`
你能分享你的模型吗?你登录了吗?@adnankaya我共享了模型,我使用邮递员登录
class FarmerViewset(
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
# mixins.DestroyModelMixin,
mixins.ListModelMixin,
viewsets.GenericViewSet
):
queryset = Farmer.objects.all()
serializer_class = FarmerSerializers
def perform_create(self, serializer):
serializer.validated_data['aggregator'] = self.request.user
serializer.save()
class FarmerSerializers(serializers.ModelSerializer):
farmer_requests = RequestSerializers(many=True, read_only=True)
class Meta:
model = Farmer
fields = '__all__'
extra_kwargs = {
'created_at': {'read_only': True},
'updated_at': {'read_only': True},
}
class Farmer(models.Model):
first_name = models.CharField(_(" Enter first name"),max_length=30)
last_name = models.CharField(_(" Enter last name"),max_length=30)
phone = models.IntegerField(_("Telephone number"), null=True)
district = models.ForeignKey(
"authentication.District",
verbose_name=("district"),
on_delete = models.CASCADE
)
sector = models.ForeignKey(
"authentication.Sector",
verbose_name=("sector"),
on_delete = models.CASCADE
)
aggregator = models.ForeignKey(
"authentication.User",
verbose_name=("aggregator"),
on_delete = models.CASCADE
)
created_at = models.DateTimeField(_("Date of creation"),default=timezone.now)
updated_at = models.DateTimeField(_("Updated date"),default=timezone.now)