【发布时间】:2015-12-24 23:12:13
【问题描述】:
我正在使用 Django/Python 创建一个站点。我刚刚开始注册页面,用户将在其中输入他们的信息,数据应该流入 Django 附带的 sqlite3 DB。从昨天晚上开始(现在不到 24 小时),我一直在试图弄清楚为什么我的表格没有出现。我尝试附上我得到的和我的目标但是没有足够的声望点所以 请访问:https://www.youtube.com/watch?v=yfjhLKL-_5Q 9.09 分钟了解我的目标。请注意:youtube 视频中的“欢迎”一词已被我替换为“谢谢”。这段代码在我的views.py中。
问题是用户在视频中输入他们的全名和电子邮件的小框(我已将其替换为职业、名字、姓氏等)根本没有出现......相反,我得到的只是'谢谢你'与我的'用户名'(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 上的“欢迎”一词已被我替换为“谢谢”。这段代码在我的views.py中。问题是用户输入全名和电子邮件的小框(我已用专业、名字、姓氏等代替)根本没有出现。我还添加了我的 views.py 和 home.html 代码.
标签: python django sqlite mobile-website