Django:无法使用视图名称解析超链接关系的URL



向颜色添加条目有效,但向温度trows:添加条目

无法使用视图名称"解析超链接关系的URL;light_analysis:温度细节";。您可能未能在API中包含相关模型,或者lookup_field配置错误

我尝试了几个使用名称空间之类的选项。我只定义了温度模型。没有别的。

urls.py(项目(

...
router = routers.DefaultRouter()
urlpatterns = [
...
path('', include('light_analysis.urls')),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

urls.py(应用程序(

from django.urls import include, path
from . import views
from something_web.urls import router
router.register(r'light', views.LightViewSet)
urlpatterns = [
path('', include(router.urls)),
]

型号.py

...
class Light(models.Model):
color_id              = models.ForeignKey(Color, on_delete=models.CASCADE)
temperature           = models.CharField(max_length=63)
temperature_id        = models.ForeignKey(Temperature, on_delete=models.CASCADE)

views.py

from rest_framework import viewsets
from common.models import Light
from .serializers import LightSerializer
class LightViewSet(viewsets.ModelViewSet):
queryset = Light.objects.all()
serializer_class = LightSerializer

serializers.py

from rest_framework import serializers
from common.models import Light
class LightSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Light
fields = '__all__'

我在Serializer:中丢失了这个

temperature_id = serializers.PrimaryKeyRelatedField(queryset=Temperature.objects.all(), many=False)

然后直接调用meta:中的字段

fields = ('temperature_id',)

相关内容

最新更新