2015-11-25 4 views
2

Я только что создал форму в первый раз и задаю несколько вопросов относительно процесса и того, куда идут данные.Где хранятся данные, созданные из моей формы?

Вот мои модели, виды, формы, URL-адреса и файлы шаблонов;

модель от 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/в <form action="/admin/" method="post"> представляют? Это где страница перенаправляется после того, как я нажимаю «Отправить», правильно?

  • Указывает ли номер name='member_form' в urls.py имя HTML-шаблона, к которому будет иметь URL-адрес, в данном случае member_form.html?

  • Где хранятся данные, созданные из формы? Я пробовал создавать объекты-члены с помощью формы, но новые объекты не отображаются на моем сайте-администраторе в разделе «Члены» (в то время как существующие). Как я могу убедиться, что объекты, созданные из этой формы, отображаются на моем сайте Admin в разделе «Участники»?

Спасибо.

ответ

3
  1. Да.
  2. Нет, это имя, которое вы используете в теге {% url %}, если вы хотите создать ссылку, указывающую на этот URL. Шаблон определяется самим представлением (в render(request, 'member_form.html',...)).
  3. Это никуда не денется, потому что ваше представление отправляется в/admin/вместо/member_form /;/admin/- это индекс админ-сайта, который не имеет кода для фактического приема данных вашей формы.

Обратите внимание, что 1 является основным HTML, а 2 и 3 являются базовыми понятиями Django, которые описаны в учебнике; вы должны пойти и прочитать это.

+0

Благодарим за ответ. Что вы имеете в виду, мой взгляд на сообщение/admin/вместо/member_form /? – korakorakora

+0

Я не знаю, как это непонятно. Как вы сами сказали в пункте 1, атрибут action представляет собой место, в которое форма отправляет данные. Вам нужно сделать так, чтобы форма отправила данные в ожидаемое представление, а не какой-либо другой случайный URL. –

+0

То, что я подразумевал под «перенаправлением», не было в терминах того, куда поступали данные, но где страница обновляется после «Отправить».Но я понимаю, что вы имеете в виду сейчас. – korakorakora

Смежные вопросы