我有一个Django项目,每当我想要更新内容时,都需要刷新页面。目前它使用内置的基于Django类的视图,而视图又使用模板。
我想开始实现一些javascript调用,用新数据刷新表格/表单/模式窗口,主要是为了响应按钮单击。我正在尝试使用Vue来实现这一点,我已经创建了一个Django REST框架后端来促进这一点。
我得到了一个简单的'Hello world‘vue类,其中的数据被硬编码到Vue类的数据字段中。不过,我似乎不能跳到从API获取数据。我收到未经授权的响应。我使用vue-resource进行HTTP API调用。
我有一些单元测试,其中我使用self.client.get(‘API / APITestCase’)从DRF路径调用api,它们可以像预期的那样工作(当没有经过身份验证的用户附加到请求时未经授权,如果有则授权)。
我已经调试了DRF权限类,以查看请求被拒绝的原因,这是因为没有经过身份验证的用户附加到请求。
我已经在DEFAULT_AUTHENTICATION_CLASSES的设置中添加了SessionAuthentication。
我的问题是,如何将经过身份验证的用户添加到请求中,以便在从我的webapp中调用Vue方法时,API请求将被授权?
我不确定这是否会使问题变得复杂,但我在Django中使用了一个自定义用户模型进行身份验证。
我希望通过在我的网站上实现一些Vue控件来开始,例如提到的表格和表单。我不想把它变成一个单页面的应用。我想继续使用Django视图进行用户身份验证。
我的Vue代码看起来像这样;
new Vue({
delimiters: ['${', '}$'],
el: '.events-table',
data: {
message: 'Hello Vue!',
demo: [
{ id: 5 },
{ id: 2 },
{ id: 3 },
],
events: [],
},
http: {
root: 'http://localhost:8000',
},
methods: {
getEvents: function () {
this.$http.get('api/eventlog/events/?format=json').then(
function (data, status, request) {
if (status == 200) {
this.events = data.body.results;
}
}
)
}
},
mounted: function () {
this.getEvents();
}
})发布于 2020-03-30 03:15:44
我像这样更改了http属性。
http: {
root: window.location.origin,
},现在,它似乎认识到请求来自经过身份验证的会话。
https://stackoverflow.com/questions/60913276
复制相似问题