2017-02-04 59 views
1

我一直在做一個個人項目,現在已經無法解決我一直在使用特定表單的問題。我過去曾經寫過成功的Django表單,並且在這些表單之後進行了建模,但我仍然無法展示它。Django表單不顯示

我的模型看起來像:

name = models.CharField(max_length=100) 
director = models.CharField(max_length=50) 
genre = models.TextField() 
rating = models.IntegerField() 
mpaa_rating = models.CharField(max_length=5) 
# movie_file = models.FileField() 
movie_cover = models.CharField(max_length=100) 
cast_list = models.TextField() 
year = models.TextField() 
url = models.CharField(max_length=100, default='http://www.imdb.com/title/') 

我的格式如:

class Meta: 
    model = Movie 
    fields = ['url', 'name', 'director', 'genre', 'rating', 'mpaa_rating', 'movie_cover', 'cast_list', 'year'] 

查看:

context = RequestContext(request) 
movie_form = MovieForm() 
if request.method == 'POST': 
    movie_form = MovieForm(data=request.POST) 
    if movie_form.is_valid(): 
     url = urlrequest.urlopen(movie_form.url) 
     movie = BeautifulSoup(url, 'html.parser') 
     movie_form.set_name(movie.find(itemprop='name')) 
     data = get_movie_data(url) 
     movie_form.data['name'] = data[0] 
     movie_form.data['director'] = data[4] 
     movie_form.data['genre'] = data[7] 
     movie_form.data['rating'] = data[3] 
     movie_form.data['mpaa_rating'] = data[2] 
     movie_form.data['year'] = data[1] 
     movie_form.data['cast_list'] = data[5] 
     movie_form.data['movie_cover'] = data[6] 
     movie_form.save() 
     print('movie added') 

return render_to_response('add_movie.html', {movie_form: 'movie_form'}, context) 

最後模板:

<form id="movie_form" method="post" action="{% url 'add_movie' %}"> 
    {% csrf_token %} 
    {{ movie_form.as_p }} 

    <input type="submit" value="Save" /> 
</form> 

我已經閱讀了關於如何解決這個問題的堆棧溢出的幾篇文章,但他們都沒有固定我的。

感謝您的幫助

回答

1

你不發送表單模板:

return render_to_response('add_movie.html', {movie_form: 'movie_form'}, 

這種替換:

return render_to_response('add_movie.html', {'movie_form': movie_form}) 

UPDATE

順便說一句,您應該使用render(),因爲它使用RequestContext

如果你想在render_to_response模板上使用它,你必須添加參數context_instance=RequestContext(request),這可能有點煩人。

+2

也許你忘了給movie_form鍵添加引號 –

+0

@taoufikA哈哈..謝謝 – brunofitas

+0

謝謝,我確定這是它的一部分,但表格仍然沒有加載。我看着我的其他表格正在工作,甚至沒有注意到我扭轉了他們。 – Michael