Я создаю Recipe
объект и сохраняю его в моем Django бэкэнде, используя CreateAPIView
. После этого Recipe
я хочу использовать его значение id
, чтобы создать URL-адрес для перенаправления на другую страницу, где я могу загрузить дополнительную информацию о Recipe
, который был только что создан. Я хочу поместить значение id
в URL, потому что его легко получить в URL, все, что я знаю, как это сделать.
AddRecipeComponent
submitrecipe(){
this.recipeservice.addrecipe(this.newrecipe).pipe(
map(res => this.response = res)
)
console.log(this.response) //THIS ALWAYS SHOW UNDEFINED IN THE CONSOLE
this.router.navigate(['/recipeimage/'+this.response.id])
}
}
recipe.service
addrecipe(newrecipe):Observable<any>{
return this.http.post(this.addrecipeUrl, newrecipe)
}
views.py
class AddRecipe(generics.CreateAPIView):
serializer_class = RecipeFullSerializer
serializer.py
class RecipeFullSerializer(serializers.ModelSerializer):
class Meta:
model = Recipe
fields = ['name', 'id']
Проблема в том, что я не могу получить параметр id
из ответа в RecipeComponent
, на самом деле я никогда не вижу значение для ответа всегда неопределено. Я знаю, что наблюдаемое - это asyn c, поэтому, вероятно, поэтому я всегда вижу его как неопределенное.
Я думаю, мне нужно дождаться завершения асинхронной операции? Или, может быть, есть лучший способ?