分类目录归档:Django

是否可以在命令行使用Django


虽然django主要用于Web应用程序,但它具有功能强大且易于使用的ORM,也可用于CLI应用程序。要将django脚本用作没有Web服务器的独立脚本,您需要做的就是将以下内容添加到文件的顶部。

import os, sys
if __name__ == '__main__':
    # Setup environ
    sys.path.append(os.getcwd())
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "main.settings")

    # ...

阅读全文...

我可以从Django中的模板访问settings.py中的常量吗?


settings.MEDIA_URL如果您使用django的内置通用视图或在render_to_response快捷方式函数中传入上下文实例关键字参数,Django可以访问模板的某些常用设置常量,例如一些语言设置。以下是每个案例的示例:

from django.shortcuts import render_to_response
from django.template import RequestContext
from django.views.generic.simple import direct_to_template

def my_generic_view(request...

阅读全文...

Django ModelAdmin中的“list_display”可以显示ForeignKey字段的属性吗?


我有一个与Book有外键关系的Person模型。本书有很多领域,但我最关心的是“作者”(标准的CharField)。

话虽如此,在我的PersonAdmin模型中,我想使用“list_display”显示“book.author”。

可以这样:

class UserAdmin(admin.ModelAdmin):
    list_display = (..., 'get_author')

    def get_author(self, obj):
        return obj.book.author
    get_author.short_descript...

阅读全文...

Django中使用MySQL数据库,提示没有名为MySQLdb的模块


这种情况,一般是没有安装Python的MySQL驱动,根据不同的操作系统可以选择安装:

easy_install mysql-python(mix os)
pip install mysql-python(mix os / python 2)
pip install mysqlclient(mix os / python 3)
apt-get install python-mysqldb(Linux Ubuntu,...)
cd / usr / ports / databases / py-MySQLdb && make install clean(FreeBSD)
yu...

阅读全文...

如何处理django MultiValueDictKeyError错误


这个错误经常出现在表单的复选框字段取值中,例如:

is_private = request.POST['is_private']

这样就会出现以上错误,可以改为这样,使用MultiValueDict的get方法。这也出现在标准dicts上,如果不存在,则提供默认值时提取值。

is_private = request.POST.get('is_private', False)

也就是字典的get方法:

my_var = dict.get(<key>, <default>)

阅读全文...

在Django中如何自定义上传文件的路径


1. 写一个固定路径

class Content(models.Model):
    name = models.CharField(max_length=200)
    user = models.ForeignKey(User)
    file = models.FileField(upload_to='/images/xxx')

2.使用日期格式

class Content(models.Model):
    name = models.CharField(max_length=200)
    user = models.ForeignKey(User)
    file...

阅读全文...

Django的MEDIA_URL和MEDIA_ROOT


注意: Django开发阶段(调试阶段debug=True)是媒体文件由Django管理,在实际项目运行阶段由你的服务器管理。

我正在尝试通过Django管理员上传图像,然后在前端的页面中或通过URL查看该图像。

请注意,这都在我的本地计算机上。

我的设置如下:

MEDIA_ROOT = '/home/dan/mysite/media/'
MEDIA_URL = '/media/'

我已将upload_to参数设置为'images',并且文件已正确上传到目录:

'/home/dan/mysite/media/images/myimage.png'

但是,当我尝试访问以下URL的图像时:

...

阅读全文...

Django中的slug字段是干什么用的


Django 中的slug字段可以生成友好的url,例如,使用文章标题生成URL。我建议使用函数生成slug,给定标题(或其他数据),而不是手动设置。

例如:

<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>

现在让我们假设我们有一个Django模型,例如:

class Article(models.Model):
    ti...

阅读全文...

覆盖和扩展基本的Django管理模板


1.在项目的templates目录下面创建admin文件夹

2.文件夹中创建index.html文件,内容如下:

{% extends "admin:admin/index.html" %}

{% block sidebar %}
    {{block.super}}
    <div>
        <h1>Extra links</h1>
        <a href="/admin/extra/">My extra link</a>
    </div>
{% e...

阅读全文...