标签: django

Django:保存时,如何检查字段是否已更改?

在我的模型中,我有:

class Alias(MyBaseModel):
    remote_image = models.URLField(max_length=500, null=True, help_text="A URL that is downloaded and cached for the image. Only
 used when the alias is made")
    image = models.ImageField(upload_to='alias', default='alias-default.png', help_text="An image representing the alias")


    def save(self, *args, **kw):
        if (not self.image or self.image.name == 'alias-default.png') and self.remote_image :
            try :
                data = utils.fetch(self.remote_image)
                image = StringIO.StringIO(data)
                image = Image.open(image)
                buf = StringIO.StringIO()
                image.save(buf, format='PNG')
                self.image.save(hashlib.md5(self.string_id).hexdigest() + ".png", ContentFile(buf.getvalue()))
            except IOError :
                pass
Run Code Online (Sandbox Code Playgroud)

这首次remote_image变化很有效.

当有人修改remote_image了别名时,如何获取新图像?其次,是否有更好的方法来缓存远程图像?

django caching image django-models

273
推荐指数
13
解决办法
14万
查看次数

如何查看Django正在运行的原始SQL查询?

有没有办法在执行查询时显示Django正在运行的SQL?

sql django

272
推荐指数
12
解决办法
15万
查看次数

Django开发IDE

我做了一个小的Django开发,但它都是在文本编辑器中.我很好奇其他人在Django开发中使用的更高级的开发工具.

我习惯使用Visual Studio进行开发,并且非常喜欢它提供的IntelliSense,代码完成和文件组织,并希望找到能够在Django/Python环境中提供一些功能的东西(或工具的组合).

python ide django

270
推荐指数
16
解决办法
20万
查看次数

如何在django中获取用户IP地址?

如何在django中获取用户的IP?

我有这样的观点:

# Create your views
from django.contrib.gis.utils import GeoIP
from django.template import  RequestContext
from django.shortcuts import render_to_response


def home(request):
  g = GeoIP()
  client_ip = request.META['REMOTE_ADDR']
  lat,long = g.lat_lon(client_ip)
  return render_to_response('home_page_tmp.html',locals())
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

KeyError at /mypage/
    'REMOTE_ADDR'
    Request Method: GET
    Request URL:    http://mywebsite.com/mypage/
    Django Version: 1.2.4
    Exception Type: KeyError
    Exception Value:    
    'REMOTE_ADDR'
    Exception Location: /mysite/homepage/views.py in home, line 9
    Python Executable:  /usr/bin/python
    Python Version: 2.6.6
    Python Path:    ['/mysite', '/usr/local/lib/python2.6/dist-packages/flup-1.0.2-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/pymodules/python2.6']
    Server time:    Sun, 2 …
Run Code Online (Sandbox Code Playgroud)

python django

266
推荐指数
8
解决办法
16万
查看次数

RuntimeWarning:DateTimeField收到一个天真的日期时间

我试图使用IPython发送一个简单的邮件.我还没有设置任何仍然出现此错误的模型.可以做些什么?

错误:/home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/models/fields/ 初始化的.py:827:RuntimeWarning:DateTimeField字段接收到的日期时间幼稚(2013年9月4日14:14:13.698105)虽然时区支持是活跃的.RuntimeWarning)

尝试:第一步是添加USE_TZ = True到您的设置文件并安装pytz(如果可能).

错误已更改:

(learn)sourabh@sL:~/Django/learn/event$ python manage.py shell
/home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:53: RuntimeWarning: SQLite received a naive datetime (2013-09-05 00:59:32.181872) while time zone support is active.
  RuntimeWarning)
Run Code Online (Sandbox Code Playgroud)

django django-mailer

264
推荐指数
9
解决办法
16万
查看次数

如何在django queryset中执行OR条件?

我想写一个等同于这个SQL查询的Django查询:

SELECT * from user where income >= 5000 or income is NULL.
Run Code Online (Sandbox Code Playgroud)

如何构造Django queryset过滤器?

User.objects.filter(income__gte=5000, income=0)
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它AND是过滤器.我想过OR滤器来获得各个查询集的联合.

python sql django django-orm django-queryset

261
推荐指数
5
解决办法
14万
查看次数

on_delete在Django模型上做了什么?

我对Django很熟悉,但最近注意到on_delete=models.CASCADE模型中存在一个选项,我搜索了相同的文档,但找不到更多:

在Django 1.9中更改:

on_delete现在可以用作第二个位置参数(以前它通常只作为关键字参数传递).它将是Django 2.0中的必需参数.

一个使用示例是

from django.db import models

class Car(models.Model):
    manufacturer = models.ForeignKey(
        'Manufacturer',
        on_delete=models.CASCADE,
    )
    # ...

class Manufacturer(models.Model):
    # ...
    pass
Run Code Online (Sandbox Code Playgroud)

on_delete做什么?(我想如果删除模型需要完成的操作)

怎么models.CASCADE办?(文档中的任何提示)

还有哪些其他选择(如果我的猜测是正确的)?

这个文档在哪里?

python django django-models

261
推荐指数
7
解决办法
14万
查看次数

Django日期时间问题(默认= datetime.now())

我有这样的db模型:

from datetime import datetime    

class TermPayment(models.Model):
    # I have excluded fields that are irrelevant to the question
    date = models.DateTimeField(default=datetime.now(), blank=True)
Run Code Online (Sandbox Code Playgroud)

当添加新实例时:

tp = TermPayment.objects.create(**kwargs)
Run Code Online (Sandbox Code Playgroud)

我有一个问题:数据库中的所有记录在日期字段中具有相同的值 - 第一次付款的日期.服务器重启后 - 一条记录有新日期,其他记录与第一条记录相同.它看起来像是使用了一些数据缓存,但我无法找到它.

数据库:mysql 5.1.25

django v1.1.1

python django

256
推荐指数
8
解决办法
26万
查看次数

获取"加载MySQLdb模块时出错:没有名为MySQLdb的模块" - 尝试过以前发布的解决方案

对于OSX 10.6用户来说,这是一个备受争议的问题,但我找不到有效的解决方案.这是我的设置:

Python 2.6.1 64bit Django 1.2.1 MySQL 5.1.47 osx10.6 64bit

我用--no-site-packages创建了一个virtualenvwrapper,然后安装了Django.当我激活virtualenv并运行python manage.py syncdb时,我收到此错误:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 257, in fetch_command
  klass = load_command_class(app_name, subcommand)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class
  module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 7, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal …
Run Code Online (Sandbox Code Playgroud)

python mysql django virtualenv virtualenvwrapper

256
推荐指数
12
解决办法
28万
查看次数

(13:权限被拒绝)连接上游时:[nginx]

我正在使用nginx和gunicorn配置django项目.当我gunicorn mysite.wsgi:application --bind=127.0.0.1:8001在nginx服务器中访问我的端口时,我在错误日志文件中收到以下错误.

server {
    listen 8080;
    server_name localhost;
    access_log  /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的"http://127.0.0.1:8001/"档案

server {
    listen 8080;
    server_name localhost;
    access_log  /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我得到的html页面中nginx.conf.

我做错了什么?

django nginx python-2.7 gunicorn

256
推荐指数
8
解决办法
14万
查看次数