首页 > 解决方案 > Django路由器检索特定帐户

问题描述

此代码适用于检索具有 localhost:8000/accounts/ 的整个帐户列表,但在给定与帐户关联的电子邮件时不适用于特定帐户 (localhost:8000/accounts/[email of account]/。相反,数据发回的是一个 HTML 文件。有时如果我输入一封不存在的电子邮件,它会告诉我找不到详细信息。但只是有时。任何帮助将不胜感激!

这是我的不同文件:

意见.PY

    class AccountViewSet(views.ModelViewSet):
        lookup_field = 'email'
        queryset = Account.objects.all()
        serializer_class = AccountSerializer

URLS.PY

     router = routers.SimpleRouter()
     router.register(r'accounts', AccountViewSet)
     url patterns = [
         url(r'api/v1/', include(router.urls)),
     ]

模型.PY

class Account(AbstractBaseUser):
    email = models.EmailField(unique=True)
    name = models.CharField(max_length=40, blank=True)
    objects = AccountManager()

标签: pythondjangohttp

解决方案


我意识到发生了什么。'.' 的使用 在电子邮件地址中 - 所以在这种情况下是“.com” - 导致了 url 问题。代码设置正确,但不能在电子邮件中使用句点作为 url api 调用的一部分。


推荐阅读