2017-02-04 4 views
1

개인 프로젝트를 조금만 진행해 왔으며 특정 양식으로 인해 발생한 문제를 해결할 수 없었습니다. 나는 과거에 장고 양식을 성공적으로 작성했으며, 장황한 형태의 모델을 만들었지 만, 아직 장고 할 수는 없습니다.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> 

문제를 해결하는 방법에 대한 스택 오버플로에 대한 여러 게시물을 읽었으나 그 중 어느 것도 아직 해결하지 못했습니다.

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

을이 교체 : 도움

답변

1

당신은 템플릿 양식을 전송하지 않을에 대한

감사

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

UPDATE

을 그건 그렇고, 대신 RequestContext을 사용하므로 render()을 사용해야합니다.

render_to_response 템플릿을 사용하려면 context_instance=RequestContext(request) 매개 변수를 추가해야합니다. 약간 짜증이납니다.

+2

어쩌면 당신은 movie_form 키에 따옴표를 추가하는 것을 잊어 버렸을 것입니다. –

+0

@taoufikA 하하 ... thanks – brunofitas

+0

고마워, 그 부분은 확실하지만 양식은 아직로드되지 않습니다. 나는 작동하고있는 다른 형태를 보았고 심지어 내가 그들을 뒤집 었음에도주의를 기울이지 않았다. – Michael

관련 문제