React + django, невозможность отображения детального представления

У меня есть некоторые проблемы с получением данных из моих модулей, когда дело доходит до детального просмотра. В основном у меня есть новости, которые отображаются, а затем я хочу, чтобы пользователь мог нажать на новость и перейти к детальному просмотру этой новости. Выборка работает нормально, когда url просто localhost/Nyheter (новости на шведском языке), но не работает, когда я добавляю id после (localhost/Nyheter/10). Вот соответствующий код (я надеюсь). Возможно, я упускаю что-то очень важное, но я просмотрел некоторое время и не могу понять, что это имеет смысл, спасибо заранее!

NewsItemPage.js

class NewsItem extends Component{
state={
    item: {}
}

id = this.props.params.match.id;

async componentDidMount(){

    try {


        const res = await fetch("http://localhost:8000/api/news/"+this.id);
        const item = await res.json();
        console.log(item);

        this.setState({
            item
        })
    }catch(e){
        console.log(e);
    }
}

App.js

    function App() {
  return (
    <Router>
          <Navigation />
          <Routes>
            <Route path="/" element={<Home />}>
              Hem
            </Route>
            <Route path="/Nyheter" element={<News/>}>Nyheter</Route>
            <Route path="/Nyheter/:id" element={<NewsItemPage/>}>Nyheter-detaljer</Route>
            <Route path="/om-oss">Om oss</Route>
            <Route path="/kontakt">Kontakt</Route>
          </Routes>
          <Footer />
    </Router>
  );

serializers.py


class NewsSerializer(serializers.ModelSerializer):

    class Meta:
        model = News
        fields = '__all__'
        lookup_field = 'id'

views.py


@api_view(['GET'])
def news_list(request):
    if request.method == 'GET':
        data = News.objects.all()

        serializer = NewsSerializer(data, context={'request': request}, many=True)

    return Response(serializer.data)

urls.py


from hemsida import views

from jk import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', TemplateView.as_view(template_name='index.html')),
    re_path(r'^api/news/$', views.news_list),
    re_path(r'^api/news/<int:id>$', views.news_list),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

models.py

class News(models.Model):
title = models.TextField(max_length=100)
description = models.TextField()
image = models.ImageField(upload_to="Images/")
created_on = models.DateTimeField(auto_now_add=True)


def __str__(self):
    return self.title

class Meta:
    ordering = ['created_on']
Вернуться на верх