django通过查找字段而不是pk 3.4 DRF来访问框架访问项

时间:2016-10-12 07:36:07

标签: django django-rest-framework

我需要有一个查找字段,以便我的前端发送电子邮件,应删除但我找不到项目。我已经对这个问题进行了很多研究,但我无法弄清楚支持哪个DRF版本。

class EmailReminderSerializer(serializers.ModelSerializer):
    city = serializers.CharField(max_length=255)
    url = serializers.HyperlinkedIdentityField(
        view_name='web:email_reminder-detail',
    )

    class Meta:
        model = EmailReminder
        fields = '__all__'
        extra_kwargs = {
            'url': {'lookup_field': 'email'}
        }

现在我有网址,但它指向实例pk,而不是我想要的查找字段。 有关它如何在3.4版本中工作的任何建议,或者您对某些较低版本> = 3.0有任何其他解决方案吗?

2 个答案:

答案 0 :(得分:5)

哦,哦,我知道了。对于序列化模型,您只需在视图中使用lookup_field,但对于超链接序列化模型,您需要序列化程序中的extra_kwargs以及视图中的查找字段。希望它可以帮助某人

答案 1 :(得分:1)

您应该修改视图中的查找字段。如DRF docs所示,您可以执行以下操作。

views.py

中的

from rest_framework import viewsets

class EmailReminderViewSet(viewsets.ModelViewSet):
    serializer_class = TagSerializer
    lookup_field = 'email'