2013-07-23 3 views
1

그래서 장고 앱이 PostgreSQL 데이터베이스를 사용하도록 settings.py를 변경했습니다. 데이터베이스에는 아직 아무 것도 없습니다. 내가 원하는 것은 웹 사이트의 첫 페이지에 이름, 성, 이메일, 사용하지 않은 사용자 이름 (내 데이터베이스에 아직없는 사용자 이름) 및 나이를 묻는 등록 양식입니다. 사람들이 유효한 양식을 제출하면 제공 한 이메일 주소로 확인 이메일을 보내려고합니다. 확인 이메일이 전송 된 경우 양식을 사용하여 제출 한 모든 정보를 등록 된 사용자 데이터베이스에 저장하려고합니다.데이터베이스에 정보를 보내는 django 등록 양식

저는 주위에 google'ing 있었고 장고로 양식을 만드는 많은 방법을 발견했으며, 제가 할 수있는 최선의 방법이 무엇인지 모르겠습니다. 나는 처음에 이것을 (https://docs.djangoproject.com/en/dev/topics/forms/) 발견했다. 주어진 이메일 주소로 이메일을 보낼 수 있는지에 대해 이야기한다. 다음으로 modelForm (https://docs.djangoproject.com/en/dev/topics/forms/modelforms/)을 찾았습니다. 그런 다음 djangobook에서 두 곳을 찾았습니다. 로그인 및 로그 아웃에 대해 (http://www.djangobook.com/en/2.0/chapter14.htmlhttps://docs.djangoproject.com/en/1.4/topics/auth/) 여기에서 django-registration 1.0 설명서 (https://django-registration.readthedocs.org/en/v1.0/genindex.html#R)를 발견했습니다. 내가하고 싶은 일을 성취하기위한 가장 좋은 장소는 무엇입니까? , 내가 알지도 못하는 때문에 꽤 잘못 내 시도이다

from django.shortcuts import render 
from django.http import HttpResponseRedirect 

def contact(request): 
    if request.method == 'POST': 
     form = ContactForm(request.POST) 
     if form.is_valid(): 
      first_name = form.cleaned_data['first_name'] 
      last_name = form.cleaned_data['last_name'] 
      sender = form.cleaned_data['sender'] 
      user_name = form.cleaned_data['user_name'] 
      age = form.clean_data['age'] 

      recipients = [] 
      recipients.append(sender) 

      from django.core.mail import send_mail 
      send_mail(first_name, last_name, sender, recipients) 
      form.save() 
      return HttpResponseRedirect('/thanks/') 
    else: 
     form = ContactForm() 

return render(request, 'contact.html', { 
    'form': form, 
}) 

같은데요 않는 다음

from django import forms 

class ContactForm(forms.Form): 
    first_name = forms.CharField() 
    last_name = forms.CharField() 
    sender = forms.EmailField() 
    user_name = forms.CharField() 
    age = forms.forms.IntegerField() 

과 :

내가하려고했던 어떤 일이 첫 번째 링크에서 있었다 html과 css를 사용하여 이러한 양식이 어떻게 보이는지 편집하는 방법과 내 데이터베이스에서 어떤 테이블을 만들지조차 모릅니다. 누구든지 내 일을 도와 줄 수 있습니까? 데이터베이스에 정보를 보내는 양식을 작성하는 방법을 설명하는 문서로 안내하면됩니다 (정보가 데이터베이스로 전송되는 방법과 해당 데이터베이스에 액세스하는 방법을 보여 줌).

+0

return 문은 올바르게 들여 쓰기되지 않으므로 이와 같이 작동하지 않습니다. 이 문제를 해결하면 코드 샘플이 제대로 작동하는 것 같습니다. 그러나 영구 데이터베이스 저장소에 대한 장고 모델에 대한 내 대답을 읽어보십시오. – bouke

+1

'age = forms.forms.IntegerField()'? 이게 뭐야? –

답변

2

당신은 멀리 떨어져 있지 않습니다. 나는 당신이 필요로하는 것이이 장고의 모든 부분들이 어떻게 어울리는 지 조금 더 이해하는 것이라고 생각합니다.

그래서 아직 작성하지 않았다면 장고 자습서 (https://docs.djangoproject.com/en/dev/intro/tutorial01/)를 먼저 읽어 보는 것이 좋습니다. 특히 models, formsModelForms과 같이 문서를 다시 읽는 것이 좋습니다.

은 (위의 일을하고 나면 다음은 더 이해가됩니다.) 장고

Form의 취급 양식 제출에 도움이 일부 유틸리티와 HTML 형태의 추상화입니다. 이러한 양식 제출은 이메일로 보내거나 데이터베이스에 저장하거나 무시할 수 있습니다.

양식은 종종 Django 모델에 어떤 식으로 매핑되기 때문에 ModelForm이 도움이됩니다. 예를 들어, 종종 모델 인스턴스로 데이터베이스에 저장되는 양식 제출이있을 수 있습니다. 따라서 기존 모델과 거의 동일한 필드가 포함 된 Form을 만드는 대신 ModelForm을 사용하면 이러한 중복을 줄일 수 있습니다. ModelForm example in the docs을 확인하십시오.

난 이러한 양식은 HTML과 CSS를 사용하여 보는 방식을 편집하는 방법을 모른다

체크 아웃 Customizing the form template (그러나 먼저 템플릿 --- 장고를 할 무엇을 알고 있어야합니다 첫째 위에서 언급 한 튜토리얼!)

나는이 내 데이터베이스에 만들어집니다 어떤 테이블도 확실하지 않다

,

Django는 저장 (모델 save() 메소드를 통해) 및 테이블 생성 (python manage.py syncdb 실행시)과 같은 데이터베이스 세부 정보 대부분을 처리합니다. 하지만 다시 Django 튜토리얼/문서를 먼저 확인해보십시오!


모든 부분이 함께 맞는 방법을 이해하면, 그때는 아마 당신이하고자하는지의 대부분과 마찬가지로 django-registration을 사용하는 것이 좋습니다.

희망이 도움이됩니다. :)

0

Django Models 정보를 보유하고 해당 정보를 데이터베이스에 보관할 수 있습니다.

다른 메모에서 원하는 것은 django-registration입니다. 해당 응용 프로그램을 사용하여 사용자는 가입하고 전자 메일 확인을받을 수 있으며 정보는 데이터베이스에 저장됩니다.

관련 문제