Django не может найти запрос шаблона URL от Angular - PullRequest
0 голосов
/ 06 мая 2020

Angular 8, Django 3. Я проделывал одну и ту же маршрутизацию и URL, просмотры, сервисы сто раз, но этот единственный маршрут не будет работать по какой-то причине, и я не знаю почему ..

Angular:

html (со ссылкой)

<h2>My Restaurants</h2>

<ul *ngFor = "let restaurant of restaurants">
    <a [routerLink]="['/ordersummary', restaurant.id]">Orders</a>
</ul>

app.routing.module

const routes: Routes = [
  {path: 'ordersummary/:id', component:OrderSummaryComponent}
];

OrderSummaryComponent

export class OrderSummaryComponent implements OnInit {

  constructor(
    private orderservice:OrderService,
    private router: ActivatedRoute) { }

  id;
  orders;

  ngOnInit() {
    this.id = this.router.snapshot.paramMap.get('id')
    this.getrestaurantorders(this.id)}

  getrestaurantorders(id){
    this.orderservice.restaurantorders(id).subscribe(
      x => this.orders = x )}}

OrderService

export class OrderService {

private baseUrl2 : string ='http://127.0.0.1:8000/users/'
private restaurantordersUrl : string = this.baseUrl2+'restaurantorders/'

  constructor(
    private http: HttpClient) { }

  restaurantorders(id):Observable<any>{
    return this.http.get<any>(this.restaurantordersUrl+id)
  }

Django

urls.py

#base urls
urlpatterns = [
    path('users/', include('users.urls')),

#users urls
urlpatterns = [
    path(r'restaurantorders/<int:pk>', RestaurantOrders.as_view(), name='restaurantorders'),
    ]

views.py

class RestaurantOrders(generics.RetrieveAPIView):
    serializer_class = RestaurantOrderSerializer
    queryset = Orders.objects.all()

serializers.py

class RestaurantOrderSerializer(serializers.ModelSerializer):
    recipe = RecipeSerializerName
    customer = CustomerSerializerShort
    class Meta:
        model = Orders
        fields = '__all__'

Я знаю что Angular запрашивает правильный URL-адрес, потому что я получаю ошибку "Http failure response for http://127.0.0.1:8000/users/restaurantorders/2: 404 Not Found". Но URL-адрес http://127.0.0.1:8000/users/restaurantorders/2 прямо здесь ... я не понимаю, все мои другие запросы работают. Я перезапустил сервер, возможно, затем перезапустите Pycharm ..

1 Ответ

0 голосов
/ 07 мая 2020

не уверен, столкнется ли кто-нибудь с этой проблемой .. но проблема здесь заключалась в том, что значение pk в моем шаблоне URL было для объекта Restaurant, а мой serializers.py запрашивал модель Orders.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...