django foreign key в urls
Существуют 2 модели, у одной из них есть поле ForeignKey примерно так:
class Table(models.Model):
customer = models.CharField(max_length=120)
def __str__(self):
return self.customer
class Element(models.Model):
count = models.IntegerField()
owner = models.ForeignKey('Table', on_delete = models.CASCADE
def __str__(self):
return self.owner.customer + " " + str(self.id)
во views я хочу отфильтровать элементы относящиеся к определенной Table:
class ElementsDetail(APIView):
def get(self, request, owner):
elements = Element.objects.filter(owner=owner)
data = ElementSerializer(elements, many=True).data
return Response(data)
вопрос в том что мне надо ввести в urls, чтобы передать этого ownera для фильтрации:
path('elements_detail/<что тут ввести?>/', ElementsDetail.as_view(), name="elements_detail"),
ну или любой другой способ чтобы отфильтровать элементы например по id owerа или как нибудь по другому
Ответы (1 шт):
Автор решения: m0nte-cr1st0
→ Ссылка
Один из вариантов - передавать в урл id экземпляра Table
path('elements_detail/<int:id>/', ElementsDetail.as_view(), name="elements_detail"),
Нужно исправить views
class ElementsDetail(APIView):
def get(self, request):
elements = Element.objects.filter(owner__id=self.kwargs['id'])
data = ElementSerializer(elements, many=True).data
return Response(data)