Django 表单
在Django中创建表单,你需要定义一个继承自forms.Form
或forms.ModelForm
的类。以下是一个简单的例子:
from django import forms
from django.forms import ModelForm
from .models import MyModel
# 定义一个普通的Django表单
class SimpleForm(forms.Form):
your_name = forms.CharField(label='Your Name', max_length=100)
email = forms.EmailField(label='Email')
# 定义一个与数据库模型关联的Django表单
class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = '__all__' # 这里可以指定字段,例如 ['field1', 'field2']
在HTML模板中使用表单:
<!-- 普通表单的使用 -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
<!-- 模型表单的使用 -->
<form method="post" action="{% url 'my_model_form_view' %}">
{% csrf_token %}
{{ my_model_form.as_p }}
<input type="submit" value="Submit">
</form>
在视图中处理表单:
from django.shortcuts import render
from .forms import SimpleForm, MyModelForm
def simple_form_view(request):
form = SimpleForm(request.POST or None)
if form.is_valid():
# 处理表单数据
print(form.cleaned_data)
return render(request, 'simple_form.html', {'form': form})
def my_model_form_view(request):
if request.method == 'POST':
form = MyModelForm(request.POST, instance=MyModel.objects.get(id=1))
if form.is_valid():
form.save()
# 重定向或其他逻辑
else:
form = MyModelForm(instance=MyModel.objects.get(id=1))
return render(request, 'my_model_form.html', {'my_model_form': form})
确保你有相应的URL映射和模板文件。这个例子展示了如何创建和使用简单的Django表单以及如何与数据库模型相关联的表单。
评论已关闭