Я создаю сайт, используя Django/Python. Я только что начал страницу регистрации, где пользователь вводит свою информацию, и данные должны поступать в базу данных sqlite3, которая поставляется с Django. У меня есть с вчерашнего вечера (было чуть меньше 24 часов), пытаясь понять, почему мои формы не появляются. Я попытался подключить то, что я получаю, против того, к чему я стремился, но у меня недостаточно очков репутации, поэтому , пожалуйста, посетите: https://www.youtube.com/watch?v=yfjhLKL-_5Q 9.09mins за то, к чему я стремился. Обратите внимание: слово «welcome» на youtube vid было заменено мной «Спасибо». Этот код находится в моих views.py.Невозможно получить «форму», работающую в Django
Проблема заключается в том, что небольшие ящики, которые пользователь вводит в свое полное имя и электронную почту в видео (которые я заменил на Профессии, first_name, last_name и т. Д.) Вообще не появляются ... вместо этого я получаю только «Спасибо» появляется вместе с моим «именем пользователя» (эквивалентом 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. Проблема заключается в том, что небольшие ящики, которые пользователь вводит в их полное имя и адрес электронной почты (которые я заменил Profesion, first_name, last_name и т. Д.), Вообще не появляются. Я добавил код views.py и home.html также , – vtj808