Добрый день.
Не могу создать удачный фильтр для модели:
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 FcaSet(viewsets.ModelViewSet):
serializer_class = FcaSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
user = self.request.user
return Fca.objects.filter(user_check = user)
В результате данные нормально фильтруются только если с клиента (в дебагере браузера) жестко забить значение User.pk . В противном случае django будто не понимает что юзер авторизирован и показываем всем данные н-р юзера с pk = 1.
Вопросы: как отобразить результаты фильтрации нормально?
Показывать юзеру только его данные таким способом это по человечески или далеко не самый лучший вариант?
Updated 29 April 2019, 14:48 by postgeographer.