2015-10-15 87 views
0

表單字段(文本區)在我的Django的模板沒有顯示。我可以找出問題所在。表單字段不顯示(Django的1.7)

Views.py

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): 
    if request.method == 'GET': 
     form = TweettForm() 
    else: 
     form = TweetForm(self.request.POST) 
     if form.is_valid(): 
      user = User.objects.get(username=username) 
      tweet = Tweet(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/'+username) 

    return render(request, 'profile.html', {'form': form}) 

forms.py

from django import forms 


class TweetForm(forms.Form): 
    text = forms.CharField(widget=forms.Textarea(attrs={'rows': 1,  'cols':85}), max_length=160) 
    country = forms.CharField(widget=forms.HiddenInput()) 

profile.html

{% extends "base.html" %} 

{% block content %} 
<div class="row clearfix"> 
<div class="col-md-12 column"> 
    <form method="post" action="post/">{% csrf_token %} 
     <div class="col-md-8 col-md-offset-2 fieldWrapper"> 
      {{ form.text.errors }} 
      {{ form.text }} 
     </div> 
      {{ form.country.as_hidden }} 
     <div> 
      <input type="submit" value="post"> 
     </div> 
    </form> 
</div> 

urls.py

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from tweets.views import Index, Profile, PostTweet 

admin.autodiscover() 

urlpatterns = patterns('', 

    url(r'^$', Index.as_view()), 
    url(r'^user/(\w+)/$', Profile.as_view()), 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^user/(\w+)/post/$', PostTweet.as_view()) 
) 

只有提交(發佈)按鈕在瀏覽器中顯示時顯示。在文中是不存在的

+1

請包括你用得到它的URL,你只包括POST方法是不是哪裏出了問題(應該)躺在 – Sayse

+0

我已經添加它。它有 –

+1

你的'PostTweet'有一個get方法嗎?你似乎沒有任何地方提供 – Sayse

回答

0

你什麼也得不到,因爲你不及格的形式的模板。寫get功能PostTweet視圖,包括在它form = TweetForm()作爲傳遞給模板設置了一個param。

+0

我做到了,但這似乎並沒有解決問題 –