【问题标题】:django form error : Caught AttributeError while rendering: 'NoneType' object has no attribute 'label'django 表单错误:渲染时捕获 AttributeError:“NoneType”对象没有属性“标签”
【发布时间】:2011-09-24 03:08:31
【问题描述】:

型号:

class AppUser(models.Model) :
    user = models.ForeignKey(User, unique=True)
    slug = models.SlugField(editable=False, blank=True)
    date_created = models.DateTimeField(editable=False, auto_now_add=True)
    last_updated = models.DateTimeField(editable=False, auto_now=True)
    hobbies = models.CharField(max_length=100, blank=True, null=True)
    education_level = models.CharField(max_length=100, blank=True, null=False)
    identifier = models.CharField(max_length=100, blank=True, null=True, unique=True)

class Student(models.Model):
    appuser = models.ForeignKey(AppUser , unique=True)
    institution = models.ForeignKey(Institution , blank=True, null=False)
    course = models.CharField(max_length=100, blank=True, null=True)
    department = models.ForeignKey(Department, blank=True, null=True)
    institute_email = models.EmailField(blank=True, null=True)
    is_valid = models.BooleanField(default=False)

表格:

class StudentForm(ModelForm):
    institute_id = forms.CharField()
    institution = forms.ModelChoiceField(queryset=Institution.objects.all())
    course = forms.ChoiceField(choices=COURSE_CHOICES)
    education_level = forms.ChoiceField(choices=EDUCATION_LEVELS)

    class Meta:
        model = Student
        exclude = ('appuser','department', 'is_valid')

观看次数:

student_formset = inlineformset_factory(AppUser,Student,fields=('institution', \
'course', 'institute_email', 'identifier', 'education_level'),form=StudentForm)

if request.POST:
    student_form = student_formset(request.POST, instance=user)
    if student_form.is_valid():

模板:

<form method='post' action='#student'>
{{ student_form.management_form }}
{% for form in student_form.forms %}
    <p>{{ form}}</p>
{% endfor %}
 </form>

错误:

Caught AttributeError while rendering: 'NoneType' object has no attribute 'label'

请求方法:GET 请求网址:http://127.0.0.1:8000/profiles/add_details/ Django 版本:1.2.4 异常类型:TemplateSyntaxError 异常值:
渲染时捕获 AttributeError:“NoneType”对象没有属性“标签” .....

模板错误 …… 渲染时捕获 AttributeError:“NoneType”对象没有属性“标签”

模板代码有问题..

如果在模板中我们使用 {{form.as_p}} 而不是渲染 {{form}},那么它什么也不输出。

对上述问题有什么想法吗??

【问题讨论】:

  • 我遇到了同样的问题,我通过从日期字段中删除 'auto_now_add' 解决了它...(但我没有找到原因)

标签: django django-forms


【解决方案1】:

我相信这里:

student_formset = inlineformset_factory(AppUser,Student,fields=('institution', \
'course', 'institute_email', 'identifier', 'education_level'),form=StudentForm)

identifier 不存在...什么都不是,无,空等...删除它! :) education_level还有!

或者,将 Student 子类化为 AppUser!

class Student(AppUser):

【讨论】:

  • 感谢 Stefan,indentifier 和 education_level 是必不可少的字段。子类方法是一种解决方案。但与当前模型不同。
  • 通过更改student_formset初始化消除错误:student_formset = inlineformset_factory(AppUser,Student,fields=('institution', 'course', 'institute_email', 'identifier', 'education_level'),form=StudentForm)改为student_formset = inlineformset_factory(AppUser,Student,form=StudentForm)
猜你喜欢
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 2018-02-11
相关资源
最近更新 更多