Не удалось определить URL для гиперссылки на отношения django

Попробовал решения, приведенные в вопросе, заданном Даниэлем Коста.

Вот мой файл models.py

class Integrations(models.Model):
    integration_id = models.UUIDField(default=uuid.uuid4, unique=True, editable=False)
    integration_type = models.CharField(primary_key=True, max_length=256)

    def __str__(self):
        return self.integration_type

    class Meta:
        ordering = ["integration_type"]
        verbose_name = "Integration"
        verbose_name_plural = "Integrations"


def get_default_mqtt():
    return Integrations.objects.get(integration_type="MQTT")

class MQTTSubscription(models.Model):
    mqtt_subscription_name = models.CharField(
        max_length=256, verbose_name="Subscription Name"
    )
    mqtt_url = models.CharField(max_length=256, verbose_name="Mqtt Host")
    integration_type = models.ForeignKey(
        Integrations, default=get_default_mqtt, on_delete=models.PROTECT
    )

    def __str__(self):
        return self.mqtt_subscription_name

   class Meta:
        ordering = ["mqtt_subscription_name"]
        verbose_name = "MQTT Subscription"

Урлы.py

integrations_list = IntegrationsViewSet.as_view({"get": "list", "post": "create"})
integrations_detail = IntegrationsViewSet.as_view(
    {"get": "retrieve", "put": "update", "delete": "destroy"}
)


mqtt_list = MQTTSubscriptionViewSet.as_view({"get": "list", "post": "create"})
mqtt_detail = MQTTSubscriptionViewSet.as_view(
    {"get": "retrieve", "put": "update", "delete": "destroy"}
)

urlpatterns = [
    path("integrations/", integrations_list, name="integrations_list"),
    path("integrations/<str:integration_type>/", integrations_detail, name="integrations_detaial"),
    path("mqttsubscription/", mqtt_list, name="mqtt_list"),
    path("mqttsubscription/<str:mqtt_subscription_name>/", mqtt_detail, name="mqtt_detail"),
]

Views.py

class IntegrationsViewSet(viewsets.ModelViewSet):
    serializer_class = IntegrationsSerializer
    queryset = Integrations.objects.all()
    lookup_field = "integration_type"

class MQTTSubscriptionViewSet(viewsets.ModelViewSet):
    serializer_class = MQTTSubscriptionSerializer
    queryset = MQTTSubscription.objects.all()
    lookup_field = "mqtt_subscription_name"

serializers.py

class IntegrationsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Integrations
        fields = ["integration_type"]

class MQTTSubscriptionSerializer(serializers.ModelSerializer):
    lookup_field = "integration_name"
    class Meta:
        model = MQTTSubscription
        fields = [
            "mqtt_subscription_name",
            "mqtt_url",
            "integration_type",
        ]

Проблема в том, что если убрать "integrations/" из urls.py, то он не интерпретирует mqttsubscription/. Пока я обновляю поле поиска, это не помогает.

Может ли кто-нибудь указать мне, что я делаю неправильно? Заранее спасибо

Вернуться на верх