AttributeError :(类)对象没有属性' __ name __'创建ModelForms [Django& Python2.7]

时间:2017-05-17 01:55:37

标签: python django postgresql python-2.7 modelform

这是我第一次使用Django,我完全不知道如何在我的项目中使用ModelForms。到目前为止,我已经能够按照在线教程但没有ModelForms(将数据添加到Postgresql数据库中),我无法继续。我试图简单地创建一个表单页面,让用户添加一些输入(2个日期字段和1个文本字段),并通过提交该表单,数据将被添加到数据库中。

我得到的错误是: AttributeError:' Hyuga_Requests'对象没有属性' 名称' [其中Hyuga_Request是models.py中设置的类]

models.py

from __future__ import unicode_literals
from django.db import models
from django.forms import ModelForm

class Hyuga_Requests(models.Model):
    name = models.CharField(max_length=50)
    s_date = models.DateField(auto_now=True)
    e_date = models.DateField(auto_now=True)
    reason = models.TextField(max_length=500)

def __unicode__(self):
    return self.name

views.py

from django.shortcuts import render
from django import forms
from .forms import Hyuga_RequestForm

def create_req(request):
    form = Hyuga_RequestForm()
    context = {"form":form,}
    return render(request,"request_form/requestform.html", context)

forms.py

from django import forms
from .models import Hyuga_Requests
from django.forms import ModelForm

class Hyuga_RequestForm(forms.ModelForm):
    class Meta:
        model = Hyuga_Requests()
        fields = ['name','s_date','e_date','reason']

请帮助这个noobie ...

3 个答案:

答案 0 :(得分:2)

不要在Hyuga_RequestForm类中的类Meta中实例化模型。

model = Hyuga_Requests()应为model = Hyuga_Requests

答案 1 :(得分:0)

错误的发生是因为您在表单上调用模型。

from django import forms
from .models import Hyuga_Requests
from django.forms import ModelForm

class Hyuga_RequestForm(forms.ModelForm):
    class Meta:
        model = Hyuga_Requests
        fields = ['name','s_date','e_date','reason']

注意:我建议您在python上定义的任何类上使用“_”,您可以在此处查看有关PEP8和代码样式的更多信息:https://www.python.org/dev/peps/pep-0008/

答案 2 :(得分:0)

model = Hyuga_Requests() - > model = Hyuga_Requests