Снимите регистрацию набора представлений с маршрутизатора drf
У меня есть два отдельных приложения Product
и Tag
, которые я использовал другое приложение Product_tags
для соединения их вместе. таким образом, если одно из них не существует, другое будет работать нормально. внутри Product_tags
я создал новое TagProductSerializer
, которое наследует ProductSerializer
и я просто добавил новое поле с именем tag в список полей.
product_tags/serializers.py:
class TagProductSerializer(ProductSerializer):
tags = serializers.PrimaryKeyRelatedField(queryset=Tag.objects.all())
class Meta:
model = Product
fields = [
'title',
'tags',
]
#...
и я сделал то же самое с Product
viewset
product_tags/views.py
class TagProductViewset(ProductViewset):
serializer_class = SocialProductSerializer
и в моем product_tags/urls.py
я импортировал мой Product
router и я хотел зарегистрировать мой product viewset снова для router. и вот моя проблема:
product/urls.py
router = routers.DefaultRouter()
router.register('product', ProductViewset)
urlpatterns = [
path('', include(router.urls)),
]
product_tags/urls.py (ПРОБЛЕМА)
from product.urls import router
from .views import TagProductViewset
router.unregister('product') # I'm looking for something like this
router.register('product',TagProductViewset)
NOTE: Я хочу показывать теги при получении продукта и поэтому не хочу использовать разные url для получения тегов (например, "api/product/tags/").
Первая попытка:
Я попытался зарегистрировать "продукт" снова (router.register('product',SocialProductViewset)
), но это не работает