这就是我现在所拥有的:
views.py
def activation_signupcount(request):
if 'datestart' not in request.GET:
form = SegmentForm(request.GET)
#form2 = Period(request.GET)
return render_to_response('activation/activation_signupcount.html', {'datestart':'', 'form':form})
模板
<form method="get" action="">
<h3>1. Choose segment</h3>
{{ form.as_p }}
forms.py
from django import forms
from django.forms.widgets import RadioSelect
from django.forms.extras.widgets import SelectDateWidget
usersegment = [['non-paying','Non-paying'],['paying','Paying'], ['all', 'All']]
class SegmentForm(forms.Form):
radio = forms.ChoiceField(required = True, label= False, widget=RadioSelect(), choices=usersegment)
输出看起来像这样
问题:
我很好地看了关于djangoprojects的文档,但除非我错过了什么,否则似乎没有任何内容?
答案 0 :(得分:3)
删除项目符号的一个选项和“需要此字段”是设置一些CSS样式。
没有要点:
list-style-type: none;
删除字段所需的文字:
display: none;
不幸的是,我不记得我的头顶默认你需要哪些类。但这应该不难发现。
要将默认值添加到initial={'non-paying': 'Non-Paying'}
之后的表单选择字段choices=usersegment
,并且应该修复该字段;)
PS。如果我不够清楚,请告诉我。
修改强> 针对默认设置Setting the selected value on a Django forms.ChoiceField
发现了类似的问题 编辑2: - ,因为Glen在评论中指出您还必须删除保证金。我建议定位<li>
元素并应用
margin: 0;
答案 1 :(得分:2)
正在显示“此字段是必需的”,因为您在实例化表单时传入了data
参数 - 您应该只在POST时执行此操作,而不是GET。如果您显示您的视图代码,我可以进一步建议如何设置初始值。
已更新嗯,很明显这确实是你的问题。出于某种原因,您将request.GET作为第一个位置参数传递,即data
,从而绑定表单。 不要那样做。这就是为什么你得到那个不需要的“这个字段是必需的”。无论如何,datestart
应该是什么?
传递初始数据的方法已有详细记录。
def activation_signupcount(request):
if request.POST:
form = SegmentForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/somewhere/')
else:
form = SegmentForm(initial=request.GET)
return render_to_response('activation/activation_signupcount.html',
{'datestart': request.GET.get('datestart', '')
'form': form})
此处initial
参数仅在GET上传递给SegmentForm,而data
仅在POST时传递。
要摆脱要点,你只需要使用CSS,但是你还没有向我们展示你是如何做到这一点所以不可能说出它为什么不起作用。