Vue.js Api不会在每次请求后刷新
我在做api项目,有一个问题。我的api是用DRF编写的,响应显示在Vue项目上。问题是,api应该在每次请求后刷新(浏览器刷新) 首先,我在我的vue页面上显示所有过滤对象(get请求)。每个对象都包含一个触发POST请求的按钮(代表drf创建另一个模型的实例+修改当前模型的实例-布尔字段更改其状态)。发送帖子并刷新页面后,api将不再返回实例,因为布尔值已更改。我想是有什么储藏室之类的。我怎样才能让它保持清新 DRF视图:Vue.js Api不会在每次请求后刷新,vue.js,django-rest-framework,Vue.js,Django Rest Framework,我在做api项目,有一个问题。我的api是用DRF编写的,响应显示在Vue项目上。问题是,api应该在每次请求后刷新(浏览器刷新) 首先,我在我的vue页面上显示所有过滤对象(get请求)。每个对象都包含一个触发POST请求的按钮(代表drf创建另一个模型的实例+修改当前模型的实例-布尔字段更改其状态)。发送帖子并刷新页面后,api将不再返回实例,因为布尔值已更改。我想是有什么储藏室之类的。我怎样才能让它保持清新 DRF视图: *class UserAccountCreation(mixins.
*class UserAccountCreation(mixins.ListModelMixin,viewsets.GenericViewSet):
queryset = ActivityForm.objects.filter(Confirmed=False)
serializer_class = AccountSerializer
permission_classes = [AllowAny,]
data = {}
def list(self, request, format=None):
serializer = ActivityFormSerializer(self.queryset, many=True)
print(serializer.data)
return Response(serializer.data, status=status.HTTP_200_OK)
def create(self, request):
serializer = AccountSerializer(data=request.data)
if serializer.is_valid():
password = "1234"
user = f"User{User.objects.count()+1}"
self.data["user"] = f"User{User.objects.count()+1}"
self.data["email"] = serializer.validated_data["email"]
self.data["response"] = "User created"
serializer.save(username=user, password=password)
return Response(self.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)*
DRF信号-此处的布尔更改:
@receiver(post_save, sender=User)
def create_UserAccount(sender, instance, created, **kwargs):
if created:
user_form = ActivityForm.objects.filter(Email=instance.email).first()
if user_form:
user_form.Confirmed = True #// bolean changes here
user_form.save()
newAccount, created = UserAccount.objects.get_or_create(user=instance, form=user_form)
newAccount.save()
else:
print("Manually added user")
VUE函数-响应保存在变量中,变量是我的循环的基础:
async getAllrequests(){
this.apiResponse = ""
await axios.get('http://localhost:8000/allforms/').then(response =>{
this.apiResponse = response.data
console.log(this.apiResponse)
})
},
async CreateUser(user, evt){
console.log(user)
const params = {
email:user.Email
}
await axios.post('http://localhost:8000/allforms/', params).then(response =>{
evt.target.innerText = "Created"
evt.target.disabled = true
})
},
模板:
<b-card
v-for="user in apiResponse"
:key="user.Email"
:title="user.Email"
tag="article"
style="max-width: 20rem; max-height: 20rem;"
class="mb-2 mr-2"
>
<b-card-text>
Age: {{CheckResponseValue(user.Age)}}
<br>
Activity: {{CheckResponseValue(user.Activity)}}
</b-card-text>
<b-button type="submit" variant="primary" v-on:click="CreateUser(user, $event)">Create</b-button>
</b-card>
年龄:{{CheckResponseValue(user.Age)}
活动:{{CheckResponseValue(user.Activity)}
创造
好的,修复:)DRF文档这次帮了我的忙。问题是list()使用self.queryset而不是self.get\u queryset