2016-06-27 4 views
-1

このコードはdjangoで動作すると言われています。返信文のないユーザービュー

class UserDetailView(LoginRequiredMixin, DetailView): 
    model = User 
    # These next two lines tell the view to index lookups by username 
    slug_field = 'username' 
    slug_url_kwarg = 'username' 

私はDjangoを初めて使用しています。このビューメソッドから返されるrender_to_responseまたは任意の形式のHttpResponse値はありません。添付

どのようにこれらのビューは、あなたが汎用ビュー(https://docs.djangoproject.com/es/1.9/ref/class-based-views/generic-display/)を使用しているURLをすべて

+0

そこには、オーバーライドしていないだけです。 – Sayse

答えて

1

でノーリターン文でに行くに戻らないviews.py

# -*- coding: utf-8 -*- 
from __future__ import absolute_import, unicode_literals 

from django.core.urlresolvers import reverse 
from django.views.generic import DetailView, ListView, RedirectView, UpdateView 

from django.contrib.auth.mixins import LoginRequiredMixin 

from .models import User 


class UserDetailView(LoginRequiredMixin, DetailView): 
    model = User 
    # These next two lines tell the view to index lookups by username 
    slug_field = 'username' 
    slug_url_kwarg = 'username' 


class UserRedirectView(LoginRequiredMixin, RedirectView): 
    permanent = False 

    def get_redirect_url(self): 
     return reverse('users:detail', 
         kwargs={'username': self.request.user.username}) 


class UserUpdateView(LoginRequiredMixin, UpdateView): 

    fields = ['name', ] 

    # we already imported User in the view code above, remember? 
    model = User 

    # send the user back to their own page after a successful update 
    def get_success_url(self): 
     return reverse('users:detail', 
         kwargs={'username': self.request.user.username}) 

    def get_object(self): 
     # Only get the User record for the user making the request 
     return User.objects.get(username=self.request.user.username) 


class UserListView(LoginRequiredMixin, ListView): 
    model = User 
    # These next two lines tell the view to index lookups by username 
    slug_field = 'username' 
    slug_url_kwarg = 'username' 

です。あなたのビューはDetailViewの子です。ドキュメントを見て、物事を並べ替えます。

+0

しかし、この例ではget_context_dataメソッドをオーバーライドしています。申し訳ありませんが、私はそれが正確に何を意味するのか分かりません。私は使用されていない新しい変数を導入します。ドキュメントは私を大いに助けていません – aceminer

+0

これはDjangoの問題ではありません。 KroustouとSayseは言うとおり、ビューはクラスであり、既にすべてのメソッドを定義しているクラスから継承します。 –

+0

はい、すべてのメソッドを定義します。しかし、どのような種類のデータを私の見解でどのように知っているのですか?それはなぜ私は理解できないのですか?私はDetailViewの例を見て、それはすでにget_context_dataメソッドを示していました。または、何か基本的なものがありません – aceminer

関連する問題