【问题标题】:How do I use generic views in Django?如何在 Django 中使用通用视图?
【发布时间】:2010-11-16 17:47:58
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: python django django-templates django-views


    【解决方案1】:

    您需要使用<app_label>/<model_name>_form.html 格式创建模板文件。将此模板放入设置文件中 TEMPLATE_DIRS 中定义的模板目录中。

    在模板文件本身中,您需要使用标准 ModelForm 定义的上下文。

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

    【讨论】:

    • 我正在尝试这样做。错误显示 auth/user_form.html 的任何原因?
    • 好吧,我的 templayes 目录有误。我解决了这个问题,并认为模板应该位于 auth/user_form.html (duh)。所以现在我需要弄清楚如何使用 form.name 的东西..
    【解决方案2】:

    我认为您不需要创建视图函数。您需要在模板目录中提供一个模板(在这种情况下为 auth/user_form.html,也是可配置的)。模板需要包含创建新用户对象所需的字段。

    请参阅docs

    也可以查看similar discussion

    【讨论】:

      猜你喜欢
      • 2013-03-07
      • 2016-10-29
      • 2015-09-07
      • 2016-10-12
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 2014-10-05
      相关资源
      最近更新 更多