我坚持使用Django,我想在这个框架上学到越来越多。我读了一些教程(英语和法语教程),当我开始时,我找不到我想要的东西。
我的app目录中有一个forms.py file
:
#-*- coding: utf-8 -*-
from django import forms
class BirthCertificateForm (forms.Form) :
# rowid = forms.IntegerField() # rowid primary key
# numero_acte = forms.IntegerField() # Form number
date_acte = forms.DateField('%d/%m/%Y') # Form date
heure_acte = forms.TimeField('%H:%M:%S') # Form hour
nom = forms.CharField(max_length=30, label=u"Nom") # Lastname
prenom = forms.CharField(max_length=30, label=u"Prénom") # Firstname
sexe = forms. # <== I would like to have the choice between 'M' or 'F'
这是我的views.app
文件:
from django.shortcuts import render_to_response
from django.http import HttpResponse
from django.template import loader
from BirthCertificate.forms import BirthCertificateForm
# Create your views here.
def BirthCertificateAccueil(request) :
# Fonction permettant de créer la page d'accueil de la rubrique Acte de Naissance
#Cherche le fichier html accueil et le renvois
template = loader.get_template('accueil.html')
return HttpResponse(template.render(request))
def BirthCertificateCreationAccueil(request) :
# Fonction permettant de créer la page de création du formulaire de la partie : Acte de Naissance
template = loader.get_template('creation_accueil.html')
return HttpResponse(template.render(request))
def BirthCertificateForm(request) :
# Fonction permettant de créer le formulaire Acte de Naissance et le remplissage
if request.method == 'POST' :
form = BirthCertificateForm(request.POST or None)
if form.is_valid():
numero_acte = form.cleaned_data["Numero de l'acte"]
nom = form.cleaned_data['Nom']
prenom = form.cleaned_data['Prenom']
return render_to_response(request, 'birthform.html', {'form' : form})
1)我想在sexe领域中选择2个选项。用户必须选择M
或F
。我想我必须使用ModelChoiceField
,但我不知道如何使用此功能。
2)其他问题:当使用提交表单时,后面的数据库更新了吗?所以我必须在某处指定rowid
或自动添加?
非常感谢你!
答案 0 :(得分:2)
ModelChoiceField适用于来自模型的选择。如果你不想要模型(如果不这样做,我不明白你对你的数据做了什么,但没关系),那么你只需使用ChoiceField。
sub show ( $seq ) { .say for |$seq }
答案 1 :(得分:0)
您无需拥有存储性别信息的模型。您只需要CharField就可以选择。
请查看此答案中的示例:https://stackoverflow.com/a/8077907/4890586