我该如何在Django中使用通用视图?

0 投票
2 回答
517 浏览
提问于 2025-04-16 07:09

我正在尝试使用Django的通用视图来制作一个用户注册页面。在我应用的urls.py文件中有以下代码:

from django.conf.urls.defaults import *
from models import Ticket

urlpatterns = patterns('',
    (r'^new/$', 'django.views.generic.create_update.create_object', { 'model': User } ),
)

现在当我访问那个网址时,我得到了以下信息:

TemplateDoesNotExist at /new/
auth/user_form.html

我尝试制作一个模板来匹配它,但我还是一直收到那个消息。有什么建议吗?

另外,我原以为这会自动为我生成模板。那么我在创建模板文件时,实际上应该放些什么呢?

补充说明:我之前用Rails时,把模板和视图搞混了。我现在还是卡住了,但我觉得我需要在我的视图中创建一个函数。类似于:

def user_form:
    #stuff

2 个回答

1

我觉得你不需要创建一个视图函数。你只需要在你的模板目录中提供一个模板(在这个例子中是auth/user_form.html,这个是可以配置的)。这个模板需要包含创建新用户所需的字段。

可以查看一下文档了解更多信息。

另外,也可以看看这个类似的讨论

1

你需要创建一个模板文件,格式是 <app_label>/<model_name>_form.html。把这个模板放到你设置文件中 TEMPLATE_DIRS 定义的模板目录里。

在这个模板文件里,你需要使用标准 ModelForm 定义的上下文。

{{ form.name.label_tag }} {{ form.name }}

撰写回答