cod*_*y46 2 django django-rest-framework
模型中的电子邮件字段可以用作其余 api 的查找字段吗?
我有一个模型“用户”,其中 username=models.CharField() 和 email=models.EmailField() 作为成员。我想将电子邮件设置为视图集中的查找字段,并具有以下相同的代码。
def get_queryset(self):
if 'email' in self.kwargs:
return User.objects.filter(email=self.kwargs['email'])
else:
return User.objects.all()
lookup_field = 'email'
lookup_url_kwarg = 'email'
Run Code Online (Sandbox Code Playgroud)
但是,由于电子邮件字段始终包含一个“.”,查找失败并显示“当前路径与这些中的任何一个都不匹配”消息。我们如何使用包含 '.' 的值执行成功的 api 查找。例如电子邮件
获取/api/user/abc@def.com
lookup_value_regex在视图集中指定属性
class FooViewset(ModelViewSet):
queryset = Foo.objects.all()
serializer_class = FooSerializer
lookup_field = 'email'
lookup_url_kwarg = 'email'
lookup_value_regex = '[\w@.]+' # here is the new attributeRun Code Online (Sandbox Code Playgroud)
注意:您不必覆盖该get_queryset()方法。
| 归档时间: |
|
| 查看次数: |
516 次 |
| 最近记录: |