Могу ли я использовать slug из другого файла urls.py?
Я пытаюсь получить доступ к полю slug из другого файла urls.py, и получаю эту ошибку
FieldError at /new-api/tournaments/fifa-world-cup/teams/
Unsupported lookup 'custom_url' for ForeignKey or join on the field not permitted.
Мне интересно, причина, по которой я получаю эту ошибку, в том, что вы не можете этого сделать, или это другая причина
У меня есть 2 файла для урлов, один включает в себя другой,
urls.py (турнир)
urlpatterns = [
path("", views.getNewTournaments, name="tournaments"),
path("<slug:custom_url>/", views.getNewTournament, name="tournament"),
path("create/", views.postNewTournament, name="post-tournament"),
path("<slug:custom_url>/teams/", include("teams.urls"), name="tournament-teams"),
]
urls.py (команды)
urlpatterns = [
path("", views.teams.as_view(), name="teams"),
]
Вот файлы views.py
views.py (турниры)
@api_view(["GET"])
def getNewTournaments(request):
tournaments = NewTournament.objects.all()
serializer = NewTournamentSerializer(tournaments, many=True)
return Response(serializer.data)
views.py (команды)
class teams(APIView):
def get(self, request, custom_url):
teams = Team.objects.filter(tournament__custom_url=custom_url)
serializer = TeamSerializer(teams, many=True)
return Response(serializer.data)
Так я понял, что моя ошибка в том, что моя модель для команд имела прошлую модельную версию турниров
Старый
class Team(models.Model):
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE)
Новый
class Team(models.Model):
tournament = models.ForeignKey(NewTournament, on_delete=models.CASCADE)