#python #django #django-models #django-forms #django-templates
Вопрос:
Это код формы, модели и шаблона. Это никак не проявлялось.
это тот самый forms.py код
from voterRegistration.models import voterReg
from django import forms
from django.forms import ModelForm
from .models import voterReg
class VoterRegForm(ModelForm):
firstname = forms.CharField(initial='First Name', max_length=20)
lastname = forms.CharField(initial='Last Name', max_length=30)
email = forms.EmailField(help_text='Enter your Email Address')
phonenumber = forms.IntegerField()
Address = forms.CharField(max_length=70)
gender = forms.CheckboxInput()
dateofbirth = forms.DateField()
state = forms.CharField(max_length=50)
local = forms.CharField(max_length=50)
occupation = forms.CharField(max_length=20)
passport = forms.ImageField()
class Meta:
model = voterReg
fields = ("firstname", "lastname","email", "phonenumber", "Address", "gender", "dateofbirth", "state", "local", "occupation", "passport")
def save(self, commit=True):
voterReg = super(VoterRegForm, self).save(commit=False)
voterReg.firstname = self.cleaned_data["firstname"]
voterReg.lastname = self.cleaned_data["lastname"]
voterReg.email = self.cleaned_data["email"]
voterReg.phonenumber = self.cleaned_data["phone number"]
voterReg.Address = self.cleaned_data["Address"]
voterReg.gender = self.cleaned_data["gender"]
voterReg.dateofbirth = self.cleaned_data["dateofbirth"]
voterReg.state = self.cleaned_data["state"]
voterReg.local = self.cleaned_data["local"]
voterReg.occupation = self.cleaned_data["occupation"]
voterReg.passport = self.cleaned_data["passport"]
if commit:
voterReg.save()
return voterReg
это HTML-шаблон регистрации избирателей
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width; initial-scale=1; shrink-to-fit=no;">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>e-NEC || Voter Registration page</title>
<!--load static-->
{% load static %}
<!--link to bootstrap and the rest-->
<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'css/stylez.css' %}" rel="stylesheet">
<link href="{% static 'fonts/css/font-awesome.min.css' %}" rel="stylesheet">
<script src="{% static 'js/jquery.min.js' %}" type="text/javascript"></script>
</head>
<body style="background-color:azure">
<!-- navbar fixed-->
<nav class="navbar navbar-expand-md navbar-light " style="background-color: green;">
<p style=" text-align: center; font-size: bold; color: white;" class="navbar-brand">e-NEC VOTER REGISTRATION PAGE</p>
</nav>
<!--load crispy form tags-->
{% load crispy_forms_tags %}
<div class="signup-form">
<form action="" method="POST">
<h1>Voter Registration Form</h1>
<!-- very important for csrf token, security validation-->
{% csrf_token %}
{{form.as_p|crispy}}
<button class="btn btn-primary btn-sm" type="submit" name="submit">Submit</button>
</form>
</div>
<footer>
<div class="container-fluid padding">
<div class="col-12">
<hr class="light-100">
<p style="text-align: center; font-weight: bold;">amp;copy; 2021 Independent National Electoral Commission</p>
</div>
</div>
</footer>
<script src="{% static 'script.js' %}"></script>
<script src="{% static 'js/bootstrap.bundle.min.js' %}"></script>
</body>
</html>
</html>
это тот самый model.py код
from django.db import models
class voterReg(models.Model):
firstname = models.CharField(max_length=50)
lastname = models.CharField(max_length=50)
email = models.EmailField()
phonenumber = models.BigIntegerField()
Address = models.CharField(max_length=50)
gender = models.CharField(max_length=10)
dateofbirth = models.DateField()
state = models.CharField(max_length=50)
local = models.CharField(max_length=50)
Я запустил это, и оно не отображалось на моей странице html-шаблона, я пробовал решения, но тоже безрезультатно.
Комментарии:
1. пожалуйста,приложите свои мнения, файл py
2. Пожалуйста, напишите
views.py
также.3. ты делаешь
form.as_p|crispy
вместоform | crispy
или{% crispy form %}
. Почему это так? crispy ожидает экземпляр формы, но если вы передадите as_p, это приведет к появлению html, а тег / фильтр шаблона crispy, скорее всего, сломается, что приведет к появлению пустого вывода.