사용자가 선택한 개체를 다른보기로 전달하고 해당 개체에서 특정 열을 검색하려면 어떻게해야합니까?

Dre

stock_list사용자가보고있는 현재 개체에서 내부의 값을 가져 오는 가장 효율적인 방법을 찾으려고합니다 .

BucketDetail 사용자가 선택한 특정 개체를 검색하는 데 사용됩니다. item = self.kwargs.get('pk')

class BucketDetail(generics.RetrieveAPIView):
    permission_classes = [IsAuthenticated]
    serializer_class = BucketListSerializer
    queryset = Bucket.objects.all()

    def get_object(self, queryset=queryset, **kwargs):
        item = self.kwargs.get('pk')
        return get_object_or_404(Bucket, slug=item)

개체 인스턴스 BucketDetailBucketData보기 에서 보기로 전달한 다음 stock_list현재 개체 인스턴스에서 열을 가져 오는 방법은 무엇입니까?

class BucketData(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, request, *args, **kwargs):
        stocks = Bucket.objects.get(stock_list)
        ...
        data = response.json()
        return Response(data, status=status.HTTP_200_OK)

위는 내가 지금까지 가지고있는 것인데, stocks = Bucket.objects.get(stock_list)내가 생각한 것처럼 작동하지 않습니다.

models.py

class Bucket(models.Model):

    category_options = (
        ('personal', 'Personal'),
        ('social', 'Social'),
    )


    class BucketObjects(models.Manager):
        def get_queryset(self):
            return super().get_queryset()

    ...
    slug = models.SlugField(unique=True, blank=True) 
    stock_list = ArrayField(models.CharField(max_length=6,null=True),size=30,null=True)
    ...


    objects = models.Manager()
    bucketobjects = BucketObjects()

    class Meta:
        ordering = ('-created',)

    def total_stocks_calc(self):
        self.stock_count = Bucket.objects.aggregate(Sum('stock_list', distinct=True))
        self.save()



마르코

stock_list내에서 데이터 를 검색하려면 모델 pk 또는 고유 한 슬러그를 사용해야 합니다 BucketData. 또한 데이터에 직렬 변환기를 사용해야합니다. slug 또는 pk를 urls 파일에서보기로 전달하십시오. 다음과 같이 시도하십시오 (코드는 테스트되지 않았으며 개선 될 수 있음).

직렬 변환기 :

class StockListSerializer(ModelSerializer):
    stock_list = serializers.ListField(child=serializers.CharField())

    class Meta:
        model = Bucket
        fields = ("stock_list",)

전망:

class BucketData(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, request, *args, **kwargs):
        slug = kwargs.get("slug")
        bucket_object = get_object_or_404(Bucket, slug=slug)
        serialzer = StockListSerializer(bucket_object.stock_list)
        return Response(serialzer.data, status=status.HTTP_200_OK)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관