首页 > 解决方案 > AttributeError:“模块”对象没有属性“名称”

问题描述

我正在尝试使用 python 创建一个基本表单,它your_name在表中只有一个字段NameForm。但我得到了错误AttributeError: 'module' object has no attribute 'Name'。我不明白这个错误来自哪里。有人可以帮我吗?我正在使用 django 1.11。模型.py

from __future__ import unicode_literals

from django.db import models

class NameForm(models.Model):
    your_name = models.CharField(max_length=200)

视图.py

from __future__ import unicode_literals

from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.views import generic

from .models import NameForm

class NameView(generic.NameView):
model = NameForm
template_name = 'home/name.html'

def get_name(request):
    if request.method == 'POST':
        form = NameForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/thanks/')
    else:
        form = NameForm()

    return render(request, 'name.html', {'form': form})

网址.py

from django.conf.urls import url

from . import views

app_name = 'home'

urlpatterns = [
url(r'^$', views.NameView.as_view(), name='name'),
]

模板/home/name.html

<form action="/your-name/" method="post">
    <label for="your_name">Your name: </label>
    <input id="your_name" type="text" name="your_name" value="{{ current_name }}">
    <input type="submit" value="OK">
</form>

标签: pythondjango

解决方案


您需要添加generic.View而不是generic.NameView,像这样

from django.views import generic

class NameView(generic.View)
      # you code ...

推荐阅读