Estoy haciendo una aplicación en django-REST, en la que una empresa puede tener varios talleres, el problema es que cuando creo una empresa y luego intento entrar al viewset de los talleres, me sale el siguiente error:
django.core.exceptions.ImproperlyConfigured: Could not resolve URL for hyperlinked relationship using view name “enterprise-detail”. You may have failed to include the related model in your API, or incorrectly configured the lookup_field
attribute on this field.
Alguien sabe como solucionar esto?, solo pasa cuando hay empresas creadas, si no hay empresas me deja entrar entrar al viewset de los talleres, aqui el codigo:
Models.py:
#modelo para empresas class Enterprise(models.Model): nit = models.CharField(db_column='NIT', primary_key=True, max_length=12) name = models.CharField(max_length=50) type = models.CharField(max_length=8) def __str__(self): return self.name class Meta: db_table = 'enterprise' #modelo para talleres class Workship(models.Model): idworkship = models.AutoField(primary_key=True) name = models.CharField(max_length=128) description = models.TextField() type_service = models.CharField(db_column='type_Service', max_length=45) stars = models.PositiveIntegerField(default=0) votes = models.PositiveIntegerField(default=0) email = models.CharField(max_length=254) field_bahias_quant = models.PositiveIntegerField(db_column='_bahias_quant') #clave foránea a Enterprise enterprise_nit = models.ForeignKey(Enterprise, models.DO_NOTHING, db_column='enterprise_NIT') def __str__(self): return self.name class Meta: db_table = 'workship' unique_together = (('idworkship', 'enterprise_nit'),)
Serializers.py:
class EnterpriseSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = models.Enterprise fields = ('nit', 'name', 'type',) class WorkshipSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = models.Workship fields = ('name','ubication', 'description', 'type_service', 'stars', 'votes', 'email' , 'field_bahias_quant', 'enterprise_nit',)
views.py:
class EnterpriseViewSet(viewsets.ModelViewSet): queryset = models.Enterprise.objects.all() serializer_class= serializers.EnterpriseSerializer class WorkshipViewSet(viewsets.ModelViewSet): queryset = models.Workship.objects.all() serializer_class = serializers.WorkshipSerializer
urls.py:
router = routers.DefaultRouter() router.register('Enterprise', views.EnterpriseViewSet, base_name = 'Enterprise') router.register('Workship', views.WorkshipViewSet, base_name = 'Workship') urlpatterns = [ path('admin/', admin.site.urls), path('', include(router.urls)), path('api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]