我刚刚第一次创建了一个表单,并对该过程和数据的位置有一些疑问。
以下是我的模型,视图,表单,网址和模板文件;
来自models.py的模型:
class Member(models.Model):
member_id = models.SlugField(max_length=10)
name = models.CharField(max_length=200)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
mobile = models.SlugField(max_length=20)
income = models.CharField(max_length=200, choices=INCOME_CHOICES)
education = models.CharField(max_length=200, choices=EDUCATION_CHOICES)
home_district = models.CharField(max_length=200, choices=DISTRICT_CHOICES)
family_spending = models.CharField(max_length=200, choices=FAMILY_SPENDING_CHOICES)
children_spending = models.CharField(max_length=200, choices=CHILDREN_SPENDING_CHOICES)
birth_date = models.DateTimeField('Birthday', blank=True)
comments = models.CharField(max_length=300, blank=True)
def __str__(self):
return self.name
views.py:
def create_a_member_form(request):
if request.method == 'POST':
form = MemberForm(request.POST)
if form is valid():
member_form = form.save()
return HttpResponseRedirect('/complete/')
else:
form = MemberForm()
return render(request, 'member_form.html', {'form': form})
forms.py:
from .models import Member
from django import forms
class MemberForm(forms.ModelForm):
class Meta:
model = Member
fields = '__all__'
urls.py:
urlpatterns = [
url(r'^member_form/$', views.create_a_member_form, name='member_form')
]
模板(member_form.html):
{% load staticfiles %}
<form action="/admin/" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
我想知道:
在模板中,{admin / in <form action="/admin/" method="post">
代表什么?这是我点击“提交”后页面重定向到的地方,对吗?
urls.py中的name='member_form'
是否代表网址与之匹配的HTML模板的名称,在这种情况下是member_form.html?
从表单创建的数据在哪里?我已尝试使用表单创建成员对象,但新对象不会显示在我的管理站点下的成员下(现有成员)。如何确保从此表单创建的对象确实显示在我的Admin站点下的Members下?
谢谢。
答案 0 :(得分:3)
{% url %}
代码中使用的名称。模板由视图本身决定(在render(request, 'member_form.html',...)
中)。请注意,1是基本HTML,2和3是本教程中介绍的基本Django概念;你应该去看看。