django - 如何只允许对当前用户的数据进行 POST 和 GET 请求?
问题描述
我只想为每个用户显示他们的数据。所以一个用户不能 GET 或 POST 另一个用户的数据。
class FcaSet(viewsets.ModelViewSet):
def get_queryset(self):
return Fca.objects.filter(user_check= request.user) #user filter
serializer_class = FcaSerializer
permission_classes = (permissions.AllowAny,)
但通常它会抛出错误:/api/cutarea-fca/int() 参数的 TypeError 必须是字符串、类似字节的对象或数字,而不是 'AnonymousUser'
接下来我尝试使用这个:
def get_queryset(self):
return Fca.objects.filter(user_check= request.user)
但是用户在前端看不到这个模型中的任何一个对象......
它是型号:
class Fca(models.Model):
num_of_agree = models.ForeignKey(Agreement, models.DO_NOTHING, blank=True, null=True)
uroch = models.TextField(blank=True, null=True)
num_allot = models.ForeignKey(Allotment, models.DO_NOTHING, blank=True, null=True)
num_fca = models.CharField(max_length=50, blank=True, null=True)
ar_fca = models.DecimalField(max_digits=8, decimal_places=2, blank=True, null=True)
expl_ar = models.FloatField(blank=True, null=True)
cel_nazn = models.ForeignKey(ForestPurpose, on_delete=models.DO_NOTHING, verbose_name='task',blank=True, null=True)
cat_zas = models.ForeignKey(ForestProtection, on_delete=models.DO_NOTHING, verbose_name='cate',blank=True, null=True )
geom = models.MultiPolygonField(geography=True, null=True, blank=True, verbose_name='ge')
video_cat = models.TextField(blank=True, null=True)
user_check = models.ForeignKey(User,on_delete=models.DO_NOTHING, verbose_name='user_id',blank=True, null=True )
class Meta:
managed = True
verbose_name = 'lek'
verbose_name_plural = 'leks'
有序列化器:
class FcaSerializer(gis_serializers.GeoFeatureModelSerializer):
class Meta:
model = Fca
geo_field = 'geom'
fields = ('id','num_of_agree','num_allot','uroch','num_fca','ar_fca',\
'expl_ar','cel_nazn','cat_zas','geom','video_cat','user_check')
def create(self, validated_data):
return Fca.objects.create(**validated_data)
我希望有人通过简单的示例或伪代码来说明如何解决这个经典任务
解决方案
推荐阅读
- python - 如何停止对返回多个相同值的列中的值求和的循环?
- jquery - 触发Flask路由后jQuery不重定向
- scala - 在 scala 中使用前导零和逗号而不是小数点格式化字符串的最有效方法
- authentication - 如何使用 RxJava 进行同步调用
- node.js - 使用 Nodejs 快速发布
- python - PyTorch - 参数不变
- python - openpyxl图表和表格设计
- qt - Qml 覆盖 OnCustomValueChanged
- swift - NSMutableAttributedString:如何检索范围内的属性
- c++ - 项目文件包含 ToolsVersion="15.0"。此工具集可能未知或缺失