[英]Django error - 'function' object has no attribute 'MyForm'
[英]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/DetailView/
基本上你需要返回一个对象,例如
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.