0

我正在尝试我的 GeneratedNameDetailsS​​erializer 与 GenarateNameSerializer 的关系。每个名字都有一个关系模型 ForeignKey

例子:

序列化器.py

类 GenarateNameSerializer(ModelSerializer):

class Meta:
    model = GenarateName
    fields = ['name','generatename']

结果:-

[ {“名称”:7,“生成名称”:“anawerWORK”},

{
    "name": 7,
    "generatename": "anawerMatch"
},

{
    "name": 7,
    "generatename": "anawerWell"
},

{
    "name": 7,
    "generatename": "anawerTALK"
},

{
    "name": 7,
    "generatename": "anawerPLUS"
},

{
    "name": 7,
    "generatename": "anawerGlobal"
},

{
    "name": 7,
    "generatename": "anawerContext"
}

]

#Serializers 与 GenarateNameSerializer 的关系

类 GeneratedNameDetailsS​​erializer(ModelSerializer):

generatenames=GenarateNameSerializer(read_only=True, many=True)
class Meta:
    model = NameGenerator
    fields = ['name','generatenames']

结果::

{“名称”:“sdfsf”}

视图.py

类 Generate_BusinessDetails(RetrieveAPIView):

serializer_class = GeneratedNameDetailsSerializer
permission_classes = (AllowAny,)
lookup_url_kwarg = 'name_id'

def get_object(self):
    name_id = self.kwargs.get('name_id')
    print('print Generate_BusinessDetails', name_id)
    objectss = get_object_or_404(NameGenerator, name=name_id)
    print(" objectss", objectss)
    generatename=GenarateName.objects.filter(name=objectss)

    for generate in generatename:
        print(" generate", generate)
        obj  ={
            'name':objectss,
            'generatename':generate
        }
        print(" obj", obj)
    return obj

类 GenerateNameListAPIView(ListAPIView):

serializer_class = GenarateNameSerializer
permission_classes = (AllowAny,)
queryset=GenarateName.objects.all()
lookup_url_kwarg = 'name_id'

# def get_object(self):
#     name_id = self.kwargs.get('name_id')
#     objectss = get_object_or_404(NameGenerator, name=name_id)
#     print('objectss ', objectss)
#     queryset = GenarateName.objects.filter(name=objectss)
 
    
#     return queryset

模型.py

类名称生成器(模型。模型):

name_id=models.CharField(verbose_name=_('name_id'), max_length=100, null=True, blank=True)
name = models.CharField(verbose_name=_('name'),max_length=50, null=True, blank=True)
category=models.ForeignKey(Category,verbose_name=_('category'), null=True,  blank=True, related_name='cname',
                                on_delete=models.CASCADE)





def __str__(self):
    return str(self.name)

类 GenarateName(models.Model):

name = models.ForeignKey(NameGenerator, verbose_name=_('name'), null=True, blank=True, related_name='genaratenames',
                                on_delete=models.CASCADE)

generatename = models.CharField(max_length=500, verbose_name=_('generatename'), null=True, blank=True)  


def __str__(self):
    return str(self.generatename) 
    
4

0 回答 0