Снимите регистрацию набора представлений с маршрутизатора 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)), но это не работает