DJango的新手需要使用get_data中的初始数据填充表单

时间:2015-02-13 21:37:10

标签: python django forms openstack

这是我的HTML:

{% block my_dashboard_main %}
<form action="status/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
{% endblock %}

我的urls.py:

urlpatterns = patterns('',
    url(r'^$', views.IndexView.as_view(), name='index'),
    url(r'status/$', views.status),
    url(r'thanks/$', views.thanks),
)

这是我的views.py:

STATUS_CHOICES = (
    ("GOOD", "Good"),
    ("BAD", "Bad"),
    ("COMPROMISED", "Compromised")
)

def thanks(request):
    return render(request, "my_dashboard/ssa_panel/sent.html')

class SsaForm(forms.Form):
    status = forms.ChoiceField(choices = STATUS_CHOICES, label="Status:")

def status(request):
    print("STATUS CALLED method=",request.method)
    if request.method == 'POST': # If the form has been submitted...
        form = SsaForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...
            print("redirect to THANKS!")
            return HttpResponseRedirect('thanks/') # Redirect after POST
    else:
        print("Requesting form\n")
        form = SsaForm(initial = {"status", "Good"}) # An unbound form

    return render(request, 'my_dashboard/ssa_panel/index.html', {
        'form': form,
    })

class IndexView(views.APIView):
    # A very simple class-based view...
    template_name = 'my_dashboard/ssa_panel/index.html'

    def get_data(self, request, context, *args, **kwargs):
        print("GET_DATA Called", context)
        # Add data to the context here...
       return context

我的页面第一次呈现我希望状态显示。它没有。只需提交按钮。我提交一次&#34;状态:[好]&lt; - 组合框&#34;在那儿。我想在get_data中获取for状态的数据并设置它,但我不知道如何。设置上下文[&#39; status&#39;] =&#34; Good&#34;或类似的东西?

我显然是DJango和REST的新手。

1 个答案:

答案 0 :(得分:1)

您正在尝试使用逗号(,)而不是冒号也使用错误的选择键错误地构造初始值字典。而不是

form = SsaForm(initial = {"status", "Good"})

form = SsaForm(initial = {"status": "GOOD"})