小编Dra*_*Dev的帖子

Axios - 显示验证返回的错误是 [object Object]

在我的 api 中我有:

$request->validate([
        'firstname' => 'required',
        'lastname' => 'required',
        'username' => 'required|unique:users',
        'email' => 'required|email|unique:users',
        'password' => 'required'
    ]);
Run Code Online (Sandbox Code Playgroud)

然后我发现了错误axios with

.catch(error=>{
    console.log("Error: " + error.response.data.errors)
})
Run Code Online (Sandbox Code Playgroud)

然而它会给我:Error: [object Object]

如果我故意输入username数据库中已经存在的 a ,然后将 catch 更改为

.catch(error=>{
    console.log("Error: " + error.response.data.errors.username)
})
Run Code Online (Sandbox Code Playgroud)

它会显示Username is already taken这是一件好事。

这意味着我必须手动指定error.response.data.errors.<x error>才能显示消息,因为如果我输入data.errors.username然后电子邮件是验证中的问题,控制台会说Error: undefined这是有道理的,因为没有data.errors.usernamebut data.errors.email

有没有一种方法可以访问并显示返回的错误而无需手动指定它?万分感谢!

javascript vue.js vue-component axios vuejs2

2
推荐指数
1
解决办法
2026
查看次数

创建后网址不存在

这是我的views.py

class LanguageViewSet(viewsets.ModelViewSet):
    queryset = Language.objects.all().order_by('name')
    serializer_class = LanguageSerializer


class FrameworkViewSet(viewsets.ModelViewSet):
    queryset = Framework.objects.all()
    serializer_class = FrameworkSerializer


class SelectedLanguageViewSet(viewsets.ModelViewSet):
    queryset = Language.objects.all()
    serializer_class = FrameworkSerializer

    def get_queryset(self):
        request = self.request
        language_id = request.query_params.get('language_id')
        language = Language.objects.filter(id=language_id)
        self.queryset = language.framework_set.all()
        return self.queryset
Run Code Online (Sandbox Code Playgroud)

还有我的urls.py

router = routers.DefaultRouter()

router.register(r'languages', views.LanguageViewSet)
router.register(r'frameworks', views.FrameworkViewSet)
router.register(r'language/<int:language_id>', views.SelectedLanguageViewSet)

urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
Run Code Online (Sandbox Code Playgroud)

然而,只有languagesframeworks工作。language不存在。这是因为get_queryset? 我什至尝试删除<int:language_id>url 参数中的 ,但它仍然不会显示。

编辑:请
原谅我的天真,我对 …

python django django-rest-framework

2
推荐指数
1
解决办法
152
查看次数

Vue - 从不同组件调用方法(使用 vue-routes)

这是我的基地App.vue,里面有router-view

<template>
<div>
    <Navbar/>

    <div class="container-fluid">
        <router-view></router-view>
    </div>
</div>
</template>

<script>
import Navbar from './components/Navbar.vue';

export default {
    name: 'App',
    components: {
        Navbar
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

在 中Navbar.vue,我有一个方法:

methods: {
    getLoggedStatus(){
        console.log('asdasd')
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,我有一个Login.vue加载到router-view. 我想getLoggedStatus()Navbar.vue内部进入Login.vue。我怎样才能实现这个目标?

Navbar我尝试在以下位置添加对标签的引用App.vue

<Navbar ref="navvy"/>
Run Code Online (Sandbox Code Playgroud)

并调用Login.vue

this.$refs.navvy.getLoggedStatus()
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

javascript vue.js vuejs2

1
推荐指数
1
解决办法
2447
查看次数

for循环内创建的数组无法访问

我有一个数组:

for (i = 0; i < this.platforms_values.length; i++){

    platform_project: [
         {owner_id: owner_id},
         {project_id: project_id},
    ]

    platform_project.push(this.platforms_values[i])
}
Run Code Online (Sandbox Code Playgroud)

但是它给了我这个:

platform_project is not defined
Run Code Online (Sandbox Code Playgroud)

javascript arrays

0
推荐指数
1
解决办法
61
查看次数