【问题标题】:Django no movie found matching the queryDjango 找不到与查询匹配的电影
【发布时间】:2021-08-28 09:56:15
【问题描述】:

我收到以下错误:

错误;未找到与查询匹配的电影 未找到与查询匹配的电影 查询 未找到与查询匹配的电影 未找到与查询匹配的电影 查询 未找到与查询匹配的电影 未找到与查询匹配的电影 查询

我的代码:

Models.py

CATEGORY_CHOICES = (
    ("A","ACTION"),
    ("D","DRAMA"),
    ("C","COMEDY"),
    ("R",'ROMANCE'),
)
LANGUAGE_CHOICES = (
    ("EN","ENGLISH"),
    ("GR","GERMAN")
)
    
STATUS_CHOICES = (
    ("RA","RECENTLY ADDED"),
    ('MW','MOST WATCHED'),
    ("TR",'TOP RATED'),
)
   
class Movie(models.Model):
    title = models.CharField(max_length=100)
    title_english = models.CharField(max_length=100)
    descritpion = models.TextField(max_length=1000)
    image = models.ImageField(upload_to="movies")
    category = models.CharField(choices=CATEGORY_CHOICES,max_length=1)
    language = models.CharField(choices=LANGUAGE_CHOICES,max_length=3)
    status = models.CharField(choices=STATUS_CHOICES,max_length=2)
    year_of_production = models.TextField(max_length=1000)
    view_count = models.IntegerField(default=0)
    
    def __str__(self):
        return self.title
    

Link_choice = (
    ("D","Download LINK"),
    ("W","WATCH LINK"),
)
    
    
class Movielinks(models.Model):
    movie = models.ForeignKey(Movie,related_name="movie_watch_link",on_delete=models.CASCADE)
    type = models.CharField(choices=Link_choice,max_length=1)
    link = models.URLField()
    
    def __str__(self):
    return str(self.movie)

Views.py

from django.views.generic import ListView,DetailView
from .models import  Movie,Movielinks    
    
    
class MovieList(ListView):
    model = Movie
    template_name = 'index.html'
    
    
class MovieDetail(DetailView):
    model = Movie
    
    def get_object(self):
        object = super(MovieDetail,self).get_object()
        return object
    
    def get_context_data(self, **kwargs):
        context = super(MovieDetail,self).get_context_data(**kwargs)
        context["links"] = Movielinks.objects.first(movie=self.get_object())
        return context

我正在尝试一切,但没有任何效果。当我将 MovieDetail 更改为 ListView 时,它正在工作,但我不需要这个。

url.py

from django.urls import path
    
from .views import MovieList, MovieDetail
    
urlpatterns = [
    path('', MovieList.as_view(),name="index"),
    path("<int:pk>", MovieDetail.as_view(),name="movie_list"),
]

【问题讨论】:

    标签: python python-3.x django django-models django-rest-framework


    【解决方案1】:

    您应该在 int:pk 中添加尖括号。

    path("<int:pk>", MovieDetail.as_view(),name="movie_list")
    

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 2021-06-21
      • 1970-01-01
      • 2013-09-22
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 2015-01-28
      相关资源
      最近更新 更多