我正在使用Django/Python創建網站。我剛剛開始註冊頁面,用戶將輸入他們的信息,數據應該流入Django附帶的sqlite3數據庫。我從昨天晚上(現在不到24小時)試圖弄清爲什麼我的表格沒有出現。我試着附上我得到的和我瞄準的東西,但是沒有足夠的聲譽點,所以 請訪問:https://www.youtube.com/watch?v=yfjhLKL-_5Q 9.09分鐘爲我的目標。請注意:youtube vid上的'welcome'一詞已被我替換爲'Thank you'。這段代碼在我的views.py中。無法在Django中使用「窗體」
問題是,用戶在視頻中輸入他們的全名和電子郵件(我已經用職業,名字,姓氏等替換)的小盒子根本沒有出現......相反, '謝謝'出現在我的'用戶名'(相當於jmitchel3)和註冊按鈕,但沒有文本框的請求。我的代碼如下。
我最初認爲我的表單安裝不正確,所以我將我的代碼與成功並沒有運氣的頁面進行了比較。我做了車型相同,但什麼也看不到有任何...
models.py:
from django.db import models
# Create your models here.
class Register(models.Model):
Profession = models.CharField(max_length=120)
first_name = models.CharField(max_length=120)
last_name = models.CharField(max_length=120)
email = models.EmailField(max_length = 120, unique = True)
phone_number = models.CharField(max_length=120)
instgram_ID = models.CharField(max_length=120, blank=True, null=True)
facebook_ID = models.CharField(max_length=120, blank=True, null=True)
twitter_ID = models.CharField(max_length=120, blank=True, null=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
def __unicode__(self):
return self.email
forms.py
from django import forms
from .models import Register
class RegisterForm(forms.ModelForm):
class Meta:
model = Register
fields = ['first_name', 'last_name', 'email', 'phone_number', 'instgram_ID', 'facebook_ID', 'twitter_ID']
def clean_email(self):
email = self.cleaned_data.get('email')
email_base, provider = email.split("@")
domain, extension = provider.split('.')
#if not domain = 'USC':
# raise forms.ValidationError("Please make sure you use your USC email.")
#if not extension == "edu":
# raise forms.ValidationError("Please use a valid .EDU email address")
#return email
def clean_full_name(self):
full_name = self.cleaned_data.get('full_name')
#write validation code.
return full_name
admin.py
from django.contrib import admin
# Register your models here.
from .forms import RegisterForm
from .models import Register
class RegisterAdmin(admin.ModelAdmin):
list_display = ["__unicode__", "timestamp", "updated"]
form = RegisterForm
#class Meta:
# model = Register
)
admin.site.register(Register, RegisterAdmin
views.py
from django.shortcuts import render
from .forms import RegisterForm
# Create your views here.
def home(request):
title = 'Welcome'
form = RegisterForm(request.POST or None)
context = {
"title": title,
"form": form
}
if form.is_valid():
instance = form.save(commit=False)
if not instance.full_name:
instance.full_name = "Justin"
instance.save
context = {
"title": "Thank you"
}
return render(request, "home.html", context)
home.html:
<h1>{{title}}</h1>
{{ user }}
{{ request.user }}
<form method ='POST' action=''>{% csrf_token %}
{{ form }}
<input type='submit' value = 'Register'>
<!-- <input> type='text'> -->
<!-- <input> -->
</form>
這已經有一段時間,因爲我一直在這裏,所以,如果我需要增加任何功能,讓我知道..
您需要對問題更加具體。您是否說在註冊的管理頁面上沒有可見的字段?此代碼中沒有任何內容打印「歡迎」,所以必須有其他代碼。 –
嗨@DanielRoseman謝謝。我的妹妹說了同樣的話。我認爲我有點依賴圖像來解釋我無法添加的內容。 youtube vid上的'welcome'這個詞已被我替換爲'Thank you'。這段代碼在我的views.py中。問題是,用戶輸入他們的全名和電子郵件(我用Profesion,first_name,last_name等取代)的小盒子沒有出現..我已經添加了我的views.py和home.html代碼。 – vtj808