我写了一份表格范本.我使用小部件来制作单选按钮,并且我希望在html文件中呈现表单时,默认选中特定的单选按钮.
模型:
class Room(models.Model):
class Meta:
number = models.PositiveSmallIntegerField()
CATEGORIES = (
('Regular', 'Regular'),
('Executive', 'Executive'),
('Deluxe', 'Deluxe'),
)
category = models.CharField(max_length=9, choices=CATEGORIES, default='Regular')
CAPACITY = (
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
)
capacity = models.PositiveSmallIntegerField(
choices=CAPACITY, default=2
)
advance = models.PositiveSmallIntegerField(default=10)
manager = models.CharField(max_length=30)
以下是基于上述模型的我的模型表单.
表格:
class AddRoomForm(forms.ModelForm):
ROOM_CATEGORIES = (
('Regular', 'Regular'),
('Executive', 'Executive'),
('Deluxe', 'Deluxe'),
)
category = forms.CharField(
max_length=9,
widget=forms.RadioSelect(choices=ROOM_CATEGORIES),
)
ROOM_CAPACITY = (
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
)
capacity = forms.CharField(
max_length=9,
widget=forms.RadioSelect(choices=ROOM_CAPACITY),
)
class Meta:
model = Room
fields = ['number', 'category', 'capacity', 'advance']
以下是观点:
def add_room(request):
if request. Method == 'POST':
form = AddRoomForm(request.POST)
if form.is_valid():
room = Room(number=request.POST['number'],
category=request.POST['category'],
capacity=request.POST['capacity'],
advance=request.POST['advance'],
manager=request.user.username)
room.save()
# Implemented Post/Redirect/Get.
return redirect('../rooms/')
else:
context = {
'form': form,
'username': request.user.username
}
return render(request, 'add_room.html', context)
context = {
'form': AddRoomForm(),
'username': request.user.username
}
return render(request, 'add_room.html', context)
我在我的html文件中呈现了这样的表单.
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" class= "submit submit-right" value="Add" />
</form>
我在某个地方读到,我可以在我的views.py文件中使用‘初始’关键字,但我不知道如何使用它.有没有人能帮我一下?