我有2個模型:作者和評論。我需要獲取由author_id過濾的評論列表!事情是這樣的:django rest框架中的簡單過濾器
- API /作家/ AUTHOR_ID /評論
- 還是這樣:API /評論AUTHOR_ID = AUTHOR_ID
- 或本:API /評論/作者/ author_id
這是官方文檔:http://www.django-rest-framework.org/api-guide/filtering。
這裏是類似的問題:Filtering in django rest framework 他們不幫我。不幸的是,在互聯網上沒有完整的簡單例子。 請告訴我,我應該在我的代碼中更改哪些內容來執行此過濾?
這裏是我的代碼:
models.py:
from django.db import models
from django.utils import timezone
class Author(models.Model):
name = models.CharField(max_length=200)
class Comment(models.Model):
author = models.ForeignKey('Employee', related_name='author_comments')
text = models.TextField(blank=True)
published = models.BooleanField(default=True)
serializer.py:
from rest_framework import serializers
from core.models import Author, Comment
class AuthorSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Author
fields = '__all__'
class CommentSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Comment
fields = '__all__'
views.py:
from rest_framework import viewsets
from models import Author, Comment
from serializers import AuthorSerializer, CommentSerializer
class CommentViewSet(viewsets.ModelViewSet):
queryset = Club.objects.all()
serializer_class = ClubSerializer
urls.py:
from django.conf.urls import url, include
from rest_framework import routers
from . import views
router = routers.DefaultRouter()
router.register(r'comments', views.CommentViewSet)
我應該在哪裏添加此代碼(我應該使用什麼文件)?我應該更改urls.py或其他文件中的內容嗎? 如果我添加這個類來查看,並使用它urls.py - 我得到一個錯誤: _AssertionError:'base_name'參數未指定,並且不能自動確定從視圖中的名稱,因爲它沒有'.queryset'屬性._ – yestema
我收到一個錯誤: ** AssertionError:未指定base_name參數,並且無法自動確定視圖集中的名稱,因爲它沒有.queryset屬性** – yestema
router.register( r'comment_list /(?P \ d +)/?$',views.CommentFilter base_name =「comment_list」) –
Darshan