2017-01-29 5 views
-1
class Profile(View): 
    """User Profile page reachable from /user/<username> URL""" 
    def get(self, request, username): 
     params = dict() 
     user = User.objects.get(username=username) 
     tweets = Tweet.objects.filter(user=user) 
     params["tweets"] = tweets 
     params["user"] = user 
     return render(request, 'profile.html', params) 

class PostTweet(View): 
    """Tweet Post form available on page /user/<username> URL""" 
    def post(self, request, username): 

     form = TweetForm(self.request.POST) 
     if request.method == 'POST': 
      if form.is_valid(): 
       user = User.objects.get(username=username) 
       tweet = TweetForm(text=form.cleaned_data['text'], 
       user=user, 
       country=form.cleaned_data['country']) 
       tweet.save() 
       words = form.cleaned_data['text'].split(" ") 

       for word in words: 
        if word[0] == "#": 
        hashtag,created=HashTag.objects.get_or_create(name=word[1]) 
        hashtag.tweet.add(tweet) 
        return HttpResponseRedirect('/user/'+user) 
      else: 
       form = TweetForm() 
       return render(request, 'profile.html',{'form':form}) 
+2

問題を明確かつ適切に書式設定してください。 –

+0

これは、私がelseをインクルードすることを確実にした私の見解です。私の要求はgetメソッドからです。私はこのような大部分のトピックを読み込んでもform.is_valid()メソッドを使用しましたが、フォーム要素はまだ表示されません。私はポストボタンしか見ることができません。 – Othniel

+0

最初の質問を編集します。コードの書式設定に問題があります。そして質問を追加してください。 – trixn

答えて

0

両方のメソッドを単一のビュークラスで作成する必要があります。 get userは空のフォームを取得し、postフォームは処理されます。

関連する問題