Как сравнить 2 поля в Django 2.1? - PullRequest
0 голосов
/ 28 ноября 2018

Models.py Это мой модельный класс, в котором у меня есть 2 таблицы. В каждой таблице у нас есть поле с именем label. Мой вопрос заключается в том, как мне сравнить 2 метки и вернуть значения с новымполе (обратная метка)

 class Server(models.Model):
     label = models.TextField(max_length=200,null=True)  #compare this
     upload1 = models.FileField(null=True, blank=True)
     Image1 = models.TextField(upload1, null=True)

class Android(models.Model):
     label=models.TextField(max_length=200,null=True) #with this
     imagestring=models.TextField(null=True,blank=True)
     returnlabel=models.TextField(null=True,blank=True) #return to this

Класс сериализаторов

   class FoodSerializers(serializers.HyperlinkedModelSerializer):
       class Meta:
       model=Server
       fields=('url','label','Image1','upload1')

   class AndroidSerializers(serializers.ModelSerializer):

    class Meta:
    model = Android
    fields = ('label', 'imagestring', 'returnlabel')

Просмотры

 class FoodViewSet(viewsets.ModelViewSet):
    queryset = Server.objects.all()
    serializer_class =FoodSerializers

class Androids(viewsets.ModelViewSet):
   queryset =Android.objects.all()
   serializer_class = AndroidSerializers

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете попробовать с SerializerMethodField .Попробуйте вот так:

class AndroidSerializers(serializers.ModelSerializer):
    return_label =  serializers.SerializerMethodField()

    class Meta:
        model = Android
        fields = ('label', 'imagestring', 'return_label')

    def get_return_label(self, obj):
        queryset = Server.objects.filter(
            label=obj.label)
        queryset_serializer = FoodSerializers(
            queryset, many=True, read_only=True)
        return queryset_serializer.data
...