2015-03-24 29 views
0

我有形式的列表視圖:保存後的數據

class MatchsView(ListView): 
    model = Match2x1 
    template_name = 'matchs.html' 

和模板渲染這樣的:

{% for match in object_list %} 
    <form action="/apostar/" method="post">{% csrf_token %} 
     <p><input type="radio" name="{{match.id}}" value="{{match.team_a}}">{{match.team_a}}</input></p> 
     <input type="submit" value="Apostar"></input> 
    </form> 
{% endfor %} 

,你可以看到每種形式都有兩個領域,我需要在DB中保存用戶選擇的值,用FormView很容易,但是因爲這次是一個ListView,我有點損失從表單中保存在DB中,我知道我必須創建一個處理表單的視圖,但真的我不知道如何創建處理每個窗體的發佈數據的視圖。例如,讓我說我需要保存一個名爲FormsMatchs的模型中的發佈數據,我該怎麼做?

有了這個,我是想:

class FormView(FormView): 
    form_class = FormMatch 
    success_url = '/' 
    template_name = 'matchs.html' 

    def post(self, request, *args, **kwargs): 
     hola = Country.objects.create(name=request.POST) 

但保存此:

<QueryDict: {u'csrfmiddlewaretoken': [u'tCIQuGlSXKJL0R5eo9R5w09ldeBt7zNW'], u'5': [u'River']}> 
+0

你可以在這裏添加你的表格嗎? – 2015-03-25 00:03:59

回答

0

你最好的選擇,如果你想有一個給定的模型的一個簡單的列表,但也接受一種形式,使用FormView和覆蓋get_context_data(self, **kwargs)到查詢集進入的上下文中,如下所示:

def get_context_data(self, **kwargs): 
    context = super(MatchsView, self).get_context_data() 
    context['object_list'] = Match2x1.objects.all() 
    return context 

但是,您也可以使用帶有ListView的FormMixin,請參閱示例here

+0

謝謝,但有沒有一種方法來做到這一點,因爲事情是我只需要一些形式的領域,除此之外我需要把其他領域的用戶填寫信息,我忘了把它,但形式有其他領域和這個領域還沒有來自模型 – dfrojas 2015-03-24 23:45:33