亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法使用視圖名稱“book-detail”解析超鏈接關系的 URL

無法使用視圖名稱“book-detail”解析超鏈接關系的 URL

POPMUISE 2023-10-26 16:52:09
之前我用過ModelSerializer,沒有出現任何錯誤。當我用HyperlinkedModelSerializer這個錯誤替換它時拋出了Could not resolve URL for hyperlinked relationship using view name "bookdetail". You may have failed to include the related model in your API,or incorrectly configured the `lookup_field` attribute on this field.這是serializers.py文件:class BookSerializer(serializers.HyperlinkedModelSerializer):    class Meta:        model = Book        fields = ['id', 'url', 'title', 'subtitle', 'isbn']model.pyclass Book(models.Model):    title = models.CharField(max_length=250)    subtitle = models.CharField(max_length=250)    author = models.CharField(max_length=100)    isbn = models.CharField(max_length=13)    def __str__(self):        return self.titleviews.pyclass BookListView(viewsets.ModelViewSet):    queryset = Book.objects.all()    serializer_class = BookSerializer和urls.pyrouter = routers.DefaultRouter()router.register('books', BookListView)app_name = "books"urlpatterns = [    path('', include(router.urls)),]視圖名稱book-detail在我的視圖中不存在,可能是 Django 自動創建的,但我不知道在哪里找到并調試它?謝謝。
查看完整描述

1 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

我也曾經遇到過這個問題,但我通過這樣做解決了:


urls.py(項目),

您可能需要在根目錄中為您的應用程序提供命名空間urls.py


path('your_url', include(('your_app.urls', 'your_app'), namespace="your_app"))

serializers.py

添加一個HyperlinkedIdentityField


class BookSerializer(serializers.HyperlinkedModelSerializer):

    # add this 

    url = serializers.HyperlinkedIdentityField(view_name="your_app:book-detail")


    class Meta:

        model = Book

        fields = ['id', 'url', 'title', 'subtitle', 'isbn']

urls.py(應用程序)

添加basename


router = routers.DefaultRouter()

# add basename

router.register('books', BookListView, basename="books")

文檔https://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/


查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號