我似乎在使用Django的程序中遇到了TypeError问题。
Views.py
from __future__ import unicode_literals
from django.shortcuts import render
from .models import Anteproyecto
from .forms import formulario_anteproyecto
from django.views.generic import CreateView
from django.core.urlresolvers import reverse, reverse_lazy
from django.contrib.messages.views import SuccessMessageMixin
class CrearAnteproyecto(SuccessMessageMixin, CreateView):
model = Anteproyecto
form_class = formulario_anteproyecto
template_name = "crear_anteproyectos.html"
success_url = reverse_lazy('crear_anteproyecto')
success_message = "El anteproyecto ha sido creado"
def form_valid(self, form):
self.object = form.save()
形式。 py
from django import forms
from .models import Anteproyecto
class formulario_anteproyecto:
class Meta:
model = Anteproyecto
fields = ['titulo', 'resumen','estado','palabras_claves']
Models.py
from __future__ import unicode_literals
from django.db import models
from taggit.managers import TaggableManager
from Actividades.models import Actividades
ESTADOS = (('Activo', 'Activo'), ('Inactivo', 'Inactivo'))
class Anteproyecto(models.Model):
titulo = models.CharField(max_length=100, verbose_name='Título')
estado = models.CharField(max_length=8, verbose_name="Estado", choices=ESTADOS, default='Activo')
resumen = models.CharField(max_length=500, verbose_name="Resumen")
claves = TaggableManager(verbose_name = "Palabras claves")
actividad = models.ForeignKey(Actividades, on_delete=models.CASCADE)
class Meta :
verbose_name = 'Anteproyecto'
verbose_name_plural = 'Anteproyectos'
def __str__(self):
return self.titulo
导入应用程序" Actividades"在模型中用作参考。使用Django-taggit来使用可以作为标记使用的字段,由于TypeError仍未实现。 Html是一个bootstrap模板,它将表单打印为段落。在不同的视图中有其他创建使用相同的编码,但是这一个给了我错误。
答案 0 :(得分:1)
您的formulario_anteproyecto
不会继承任何内容。它需要继承forms.ModelForm
。