FAQ: 使用Django

为什么我在导入 DJANGO_SETTINGS_MODULE 时收到错误提示?

保证:

  • 环境变量 DJANGO_SETTINGS_MODULE 被设置成一个完全合格的 Python 模块(即 "mysite.settings")。
  • 所述模块在 sys.path (需引入 import mysite.settings 才会工作)
  • 该模块不包含语法错误。

我不喜欢 Django 的模板语言,能不能不使用它?

我们认为我们的的模板引擎是最好的,但是我们意识到选择一个模板语言和信仰宗教相似。Django 没有什么必须的模板语言,如果你愿意使用 Jinja2、Mako 或其他的,请随意使用。

我是否必须使用你的模型/数据库层?

不。就像模板系统,模型/数据库层是与框架的其余部分分离的。

唯一例外的是:如果你使用其他的数据库库,你没办法使用 Django 自动生成的后台界面。这个应用是和 Django 数据库层耦合的。

我要怎么使用图片和文件字段?

在模型中使用 FileFieldImageField ,你还需要完成如下步骤:

  1. In your settings file, you'll need to define MEDIA_ROOT as the full path to a directory where you'd like Django to store uploaded files. (For performance, these files are not stored in the database.) Define MEDIA_URL as the base public URL of that directory. Make sure that this directory is writable by the web server's user account.
  2. 在你的模型中添加 FileField 或者 ImageField ,可以通过定义:attr:~django.db.models.FileField.upload_to 在 MEDIA_ROOT 中明确一个子目录用来上传文件。
  3. 所有将被储存在数据库中的文件路径相同(相对于:setting: MEDIA_ROOT`)。你很想用由 Django 提供的:attr:~django.db.models.fields.files.FieldFile.url,比如, 如果:class:~django.db.models.ImageField 被叫做 mug_shot, 你就可以得到 {{ object.mug_shot.url }} 图片模板的绝对路径。

我如何让一个变量可用于我的所有模板之中?

有时候你的模板会需要相同的东西。一个常见的例子是动态生成的菜单。乍一看,在模板上下文中添加一个通用字典似乎是合乎逻辑的。

最好方法是使用 RequestContext。关于如何使用它请查看:使用 RequestContext