繁体   English   中英

django unittest 中的错误:“对象没有属性”对象

[英]Error in django unittest: 'object has no attribute' object

我开始测试视图,但是在测试中发现错误,告诉我哪里出错了,我才刚刚开始学习,所以不要严格判断我的观点:

    `class MovieDetailView(Genre, DetailView):
            
            model = Movie
            slug_field = "url"
        
        
            def get_context_data(self, **kwargs):
                context = super().get_context_data(**kwargs)
                context["star_form"] = RatingForm()
                return context
        `
                    
                    

我的测试是这样的:

        `def test_starform_set_in_context(self):
            request = RequestFactory().get('some-slug')
            view = MovieDetailView()
            view.setup(request)
            context = view.get_context_data()
            self.assertIn('star_form', context))`

网址:

 `path("<slug:slug>/", views.MovieDetailView.as_view(), name="movie_detail"),`

我认为这是因为 Django 的 get_context_data() 函数使用 'object' 将其传递到上下文中。所以,我建议您使用 get_object() 方法。

有关更多详细信息,请参阅: https : //ccbv.co.uk/projects/Django/3.0/django.views.generic.detail/Det​​ailView/

基本上你需要返回一个对象,例如

def get_object(self,queryset=None):
    obj = Movie.object.get(slug=self.kwargs.get('slug'))
    return obj #also handle 404

或者再尝试一件事:

slug_fields = slug

路径应该是

path("<str:slug>/", views.MovieDetailView.as_view(), name="movie_detail"), 

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM