python - 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>
解决方案
您需要添加generic.View
而不是generic.NameView
,像这样
from django.views import generic
class NameView(generic.View)
# you code ...
推荐阅读
- c++ - 可以使用空字符的 std::string 吗?
- javascript - 从 php 控制网络浏览器
- javascript - (aws-amplify)为什么仅在上传完成时才执行 progressCallback?
- php - How to fetch the amount spent by A Facebook Ad Account in a particular date range?
- c++ - What is the difference between qMin and std::min?
- javascript - 如何使用 jQuery 在 Django Autocomplete Light 小部件上捕获更改事件
- javascript - 有人可以帮我为什么当我在控制台中输入这些数据时我的控制台只返回 0 吗?
- python - 无法定位元素:python + selennium
- caching - 缓存工作一小时,而它应该工作几天
- c++ - 使用后如何使用 boost program_options 来消耗/删除 ARGV 中的选项