gpt4 book ai didi

python - 无法在 Django 中显示我的 CreateForm

转载 作者:行者123 更新时间:2023-11-28 02:22:57 29 4
gpt4 key购买 nike

我在 Django 中创建了一个表单和一个 View ,我试图在 HTML 中显示它,但它没有加载任何东西,我不知道为什么。

校友2.html

{% block header %}
<header class="masthead bg-white text-dark text-uppercase">
<div class="container">
<h3 class="text-center">Añadir alumno</h3>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button class="btn btn-secondary" type="submit">Guardar</button>
</form>
</div>
</header>
{% endblock %}

表单.py

class AlumnoForm2(forms.ModelForm):
class Meta:
model = Alumno
#fields = ['dni', 'nombre', 'apellido1', 'apellido2','email','repetidor']
fields = ['dni', 'nombre', 'apellido1', 'apellido2','email','repetidor','curs']

labels = {
'dni': 'dni',
'nombre': 'nombre',
'apellido1': 'Primer Apellido',
'apellido2': 'Segundo Apellido',
'email': 'Email',
'repetidor': 'repetidor',
'curs': 'curs'
}

widgets = {
'dni': forms.TextInput(attrs={'class': 'form-control'}),
'nombre': forms.TextInput(attrs={'class': 'form-control'}),
'apellido1': forms.TextInput(attrs={'class': 'form-control'}),
'apellido2': forms.TextInput(attrs={'class': 'form-control'}),
'email': forms.TextInput(attrs={'class': 'form-control'}),
'repetidor': forms.CheckboxInput(attrs={'class':'form-control-checkbox','id': 'repetidor'}),
'curs':forms.Select(attrs={'class': 'form-control'}),
}

View .py

class crea_alumno(CreateView):
model = Alumno
form_class = AlumnoForm2
template_name = '/alumno2.html'
success_url = reverse_lazy('mostrar_alumnos')

网址.py

url(r'^alumno2/$', crea_alumno.as_view(),name='alumno2'),

模型.py

class Alumno(models.Model):
dni = models.CharField(max_length=9,primary_key=True)
nombre = models.CharField(max_length=100)
apellido1 = models.CharField('Primer apellido',max_length=50)
apellido2 = models.CharField('Segundo apellido',max_length=50)
email = models.EmailField("Correo electronico",null=True)
repetidor = models.BooleanField()
curs = models.ManyToManyField(Curso, blank=True, related_name="Historico_de_cursos")
Nivel = models.ManyToManyField('Nivel', through = 'Completado',through_fields=('Alumno','Nivel'))
Practica = models.ManyToManyField('Practica', through = 'Nota',through_fields=('Alumno','Practica'))
Curso = models.ManyToManyField('Curso',through = 'Curso_alumno',through_fields=('Alumno','Curso'))


def __str__(self):
return self.dni

html 只显示保存按钮,不加载创建表单。 html 位于模板文件夹内,这就是我拥有此 url 的原因。

编辑:我已经删除了我也有的模板

url(r'^alumno2/$', TemplateView.as_view(template_name='alumno2.html'),name='alumno2'),

而且我不确定是否需要将它放在 url.py 中,所以现在我只有 View ,没有 View 就无法找到我的模板

最佳答案

删除行

url(r'^alumno2/$', TemplateView.as_view(template_name='alumno2.html'),name='alumno2'),

从你的 urls.py 中只保留这个:

url(r'^alumno2/$', crea_alumno.as_view(),name='alumno2'),

在您的 View 中,删除模板名称中的 /:而不是

template_name = '/alumno2.html'

使用

template_name = 'alumno2.html'

并根据 documentationCreateView 替换为 FormView

关于python - 无法在 Django 中显示我的 CreateForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56375394/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com