简体   繁体   English

AssertionError at /api/movies/ 'MovieViewSet' 应该包含一个 `queryset` 属性,或者覆盖 `get_queryset()` 方法

[英]AssertionError at /api/movies/ 'MovieViewSet' should either include a `queryset` attribute, or override the `get_queryset()` method

Iam trying to access http://localhost:8000/api/movies/.我正在尝试访问 http://localhost:8000/api/movies/。 But, it showing like this ..AssertionError at /api/movies/ 'MovieViewSet' should either include a queryset attribute, or override the get_queryset() method.但是,它在 /api/movies/ 'MovieViewSet' 中显示为这样的 ..AssertionError 应该包含一个queryset属性,或者覆盖get_queryset()方法。 I attached my code below我在下面附上了我的代码

models.py模型.py

from django.db import models
from django.contrib.auth.models import User
from django.core.validators import MinValueValidator,MaxValueValidator


class Movie(models.Model):
    title = models.CharField(max_length = 32)
    description = models.TextField(max_length =300)

    def __str__(self):
        return self.title

class Rating(models.Model):
    movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    stars = models.IntegerField(validators=[MinValueValidator(1),MaxValueValidator(5)])

    class Meta:
        unique_together =(("user","movie"),)
        index_together =(("user","movie"),)

serializers.py序列化程序.py

from rest_framework import serializers
from .models import Movie,Rating

class MovieSerializer(serializers.ModelSerializer):
    class Meta:
        model = Movie
        fields = ('id','title','description')

class RatingSerializer(serializers.ModelSerializer):
    class Meta:
        model = Rating
        fields = ('id','stars','user','movie')

urls.py网址.py

from django.contrib import admin
from django.urls import path
from rest_framework import routers
from django.conf.urls import include
from .views import MovieViewSet,RatingViewSet

router = routers.DefaultRouter()
router.register('movies',MovieViewSet,basename='movies')
router.register('ratings',RatingViewSet,basename='ratings')

urlpatterns = [
    path('', include(router.urls)),
]
 

views.py视图.py

from django.shortcuts import render
from rest_framework import viewsets
from .models import Movie,Rating
from .serializers import MovieSerializer,RatingSerializer

class MovieViewSet(viewsets.ModelViewSet):
    query_set = Movie.objects.all()
 
    serializer_class = MovieSerializer

class RatingViewSet(viewsets.ModelViewSet):
    query_set =  Rating.objects.all()
    serializer_class =  RatingSerializer

您应该在views.py使用queryset ,而不是query_set

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 DRF:“DemoView”应包含“queryset”属性,或覆盖“get_queryset()”方法 - DRF : 'DemoView' should either include a `queryset` attribute, or override the `get_queryset()` method 'MovieViewSet' 应该包含一个 `serializer_class` 属性,或者覆盖 `get_serializer_class()` 方法 - 'MovieViewSet' should either include a `serializer_class` attribute, or override the `get_serializer_class()` method Django rest 框架,应该能够覆盖 get_queryset 而不是定义 queryset 属性吗? - Django rest framework, should be able to override get_queryset and not define queryset attribute? django 中的 queryset 属性和 get_queryset() 方法的区别? - Difference between queryset attribute and get_queryset() method in django? 覆盖 get_queryset DetailView - override get_queryset DetailView AssertionError:无法在未设置`.queryset`或没有`.get_queryset()方法的视图上应用DjangoModelPermissionsOrAnonReadOnly - AssertionError: Cannot apply DjangoModelPermissionsOrAnonReadOnly on a view that does not set `.queryset` or have a `.get_queryset()` method 在嵌套循环中重写listview中的get_queryset方法 - Override get_queryset method in listview for nested cycles 试图覆盖视图中的 get_queryset - Trying to override a get_queryset in a view 如何从Django中的get_queryset方法返回多个queryset对象或添加queryset结果 - How to return multiple queryset object or add queryset result from get_queryset method in Django 根据django-guardian权限覆盖get_queryset - Override get_queryset based on django-guardian permissions
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM