小编T. *_*one的帖子

以编程方式将图像保存到Django ImageField

好吧,我已经尝试了几乎所有的东西,我无法让它工作.

  • 我有一个带有ImageField的Django模型
  • 我有通过HTTP下载图像的代码(测试和工作)
  • 图像直接保存到'upload_to'文件夹中(upload_to是在ImageField上设置的文件)
  • 我需要做的就是将现有的图像文件路径与ImageField相关联

我已经用6种不同的方式编写了这段代码.

我遇到的问题是我写的所有代码都会导致以下行为:(1)Django将生成第二个文件,(2)重命名新文件,在文件末尾添加_ name,然后(3)不传输任何数据,基本上是一个空的重命名文件.'upload_to'路径中剩下的是2个文件,一个是实际图像,一个是图像的名称,但是是空的,当然ImageField路径设置为Django尝试创建的空文件.

如果不清楚,我会试着说明:

## Image generation code runs.... 
/Upload
     generated_image.jpg     4kb

## Attempt to set the ImageField path...
/Upload
     generated_image.jpg     4kb
     generated_image_.jpg    0kb

ImageField.Path = /Upload/generated_image_.jpg
Run Code Online (Sandbox Code Playgroud)

如果Django没有尝试重新存储文件,我怎么能这样做呢?我真正喜欢的是这个效果......

model.ImageField.path = generated_image_path
Run Code Online (Sandbox Code Playgroud)

......但当然这不起作用.

是的,我已经经历这里的其他问题,如走了这一个,以及对Django的DOC 文件

更新 进一步测试后,它只在Windows Server上的Apache下运行时才会出现此问题.在XP上的"runserver"下运行时,它不会执行此行为.

我很难过.

这是在XP上成功运行的代码...

f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()
Run Code Online (Sandbox Code Playgroud)

python django django-models

192
推荐指数
9
解决办法
12万
查看次数

从python中的内部类访问外部类

我有这样的情况......

class Outer(object):

    def some_method(self):
        # do something

    class Inner(object):
        def __init__(self):
            self.Outer.some_method()    # <-- this is the line in question
Run Code Online (Sandbox Code Playgroud)

如何OuterInner类中访问类的方法?

编辑 - 感谢您的回复.我的结论是,我需要重新评估我是如何设计这个实现的,并提出一个更强大的方法.

python scope nested inner-classes

86
推荐指数
5
解决办法
6万
查看次数

强制jQuery Mobile重新评估动态插入内容的样式/主题

目标: 通过加载HTML内容$.ajax,将其插入DOM,让jQuery Mobile应用主题样式.

问题: 内容被插入但缺少jQuery Mobile主题.

码:

$.ajax({
    ...
    success: function(html) {
        $('#container').append(html);
        $('#page').page('refresh', true);
    }
});
Run Code Online (Sandbox Code Playgroud)

返回的HTML包含data-rolejQM应该样式的标签......

<a data-role="button">Do Something</a>
Run Code Online (Sandbox Code Playgroud)

我没有应用它应该的样式,而是出现以下错误:

未捕获的异常:没有这样的方法'刷新'页面小部件实例


以上代码测试使用 http://code.jquery.com/mobile/latest/jquery.mobile.js


类似的问题让我收到上述错误信息:

使用适当的jQuery Mobile样式一致地更新页面

JQM(jQueryMobile)动态添加了未正确显示的元素,并且未应用CSS

jQuery Mobile - 动态创建表单元素

jquery-mobile

55
推荐指数
4
解决办法
5万
查看次数

拥有POST'able API和Django的CSRF中间件

我有一个Django webapp,它既有前端的,可通过Web访问的组件,也有桌面客户端访问的API.但是,现在使用新的CSRF中间件组件,来自桌面客户端的POST请求的API请求将获得403.

我理解为什么会发生这种情况,但在不影响安全性的情况下解决这个问题的正确方法是什么?有没有我可以在HTTP标头中发出信号,它是一个API请求,Django不应该检查CSRF或者这是一个糟糕的策略?

编辑 -

我目前使用的方法是桌面客户端设置标头,X-Requested-With:XMLHttpRequest.这有点像hacky,但我不确定如何更好地处理它.

security api django csrf

32
推荐指数
2
解决办法
2万
查看次数

我可以停止:将鼠标悬停在应用于元素上吗?

假设我有一些CSS ......

button:hover { font-weight: bold }

如何防止:hover样式被随意应用?我的目标用例是禁用该元素.例如,使用此HTML ...

<button disabled>Click me</button>

...... :hoverCSS仍然适用.按钮逐渐消失,但:hover仍然可以看到效果.怎么能停止?

html css

30
推荐指数
4
解决办法
5万
查看次数

如何为Django ForeignKey Model或AdminModel字段指定默认值?

如何在django Model或AdminModel中的ForeignKey字段上设置默认值?

像这样的东西(但当然这不起作用)......

created_by = models.ForeignKey(User, default=request.user)
Run Code Online (Sandbox Code Playgroud)

我知道我可以在视图中"欺骗"它,但就AdminModel而言,似乎不可能.

python django-models django-admin

21
推荐指数
5
解决办法
4万
查看次数

Django信号发射一次,收到两次 - 为什么?

我正在使用Django信号,但它们似乎被接收了两次,即使发出一次.这是我正在使用的代码(它是一个使用上传与Django的简单包装器)...

# Signal-emitting code... emits whenever a file upload is received
# ----------------------------------------------------------------
upload_recieved = django.dispatch.Signal(providing_args=['data'])

def upload(request, *args, **kwargs):
    if request.method == 'POST':
        if request.FILES:
            print 'sending signal'
            upload_recieved.send(sender='uploadify', data=request.FILES['Filedata'])
    return HttpResponse('True')

# Signal-receiving code...
# ----------------------------------------------------------------    
def upload_received_handler(sender, data, **kwargs):
    print 'upload received handler'

print 'connecting signal'
upload_recieved.connect(upload_received_handler)
Run Code Online (Sandbox Code Playgroud)

(我刚注意到我的信号拼错了)

我确定你注意到那里的印刷声明.在控制台上,这是它显示的内容:

(server starts)
connecting signal

...

sending signal
upload received handler
upload received handler     # << == where is this 2nd one coming from?
127.0.0.1 - - [25/Sep/2009 07:28:22] …
Run Code Online (Sandbox Code Playgroud)

django django-signals

17
推荐指数
1
解决办法
4708
查看次数

使用FileField测试Django模型

我正试图通过Django过渡到测试.这是用于测试的特定模型:

class Media(models.Model):
    file = models.FileField(upload_to='upload',)
    thumbnail = models.ImageField(upload_to='upload', blank=True,)

    # ...
Run Code Online (Sandbox Code Playgroud)

第1部分:我如何处理这些FileFields?(特别是在我需要生成伪条目来测试代码位的意义上)

第2部分:下面是我开始编写的测试代码.我这样做是正确的还是我应该使用"嘲弄"的形式?

from django.test import TestCase
from django.test.client import Client

from django.contrib.auth.models import User
from mediamanager.models import Media

class MediaManagerTestCase(TestCase):

    def setUp(self):
        self.fake_user = User.objects.create(username='fakeuser', is_staff=false)   
        self.fake_staff = User.objects.create(username='fakestaff', is_staff=true)    
        self.fake_admin = User.objects.create(username='fakeadmin', is_superuser=true)

        self.fake_media_image = Media.objects.create()  # Hmmm...
        self.fake_media_video = Media.objects.create()  # How do i do this...

    def testMediaCanEdit(self):
        perm = self.fake_media_image.can_edit(self.fake_user)
        self.assertEquals(perm, false)
Run Code Online (Sandbox Code Playgroud)

django unit-testing

17
推荐指数
2
解决办法
6140
查看次数

Django测试 - 硬代码URL或不

这是一个最佳实践问题.

在Django中编写测试时,在test.py中硬编码url或使用dispatch的reverse()函数检索正确的url会更好吗?

使用硬编码的网址进行测试只是感觉像是正确的方式,但同时我想不出一个不使用reverse()的足够好的论据.

选项A.反向()

# Data has already been loaded through a fixture
def test_view_blog(self):
    url = reverse('blog', kwargs={'blog_slug':'test-blog'})
    response = self.client.get(url)
    self.failUnlessEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)

选项B.硬编码

# Data has already been loaded through a fixture
def test_view_blog(self):
    url = '/blog/test-blog/'
    response = self.client.get(url)
    self.failUnlessEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)

django django-testing

16
推荐指数
2
解决办法
2600
查看次数

在给定标记的所有子元素上使用jQuery的.wrap

使用jQuery,我想要执行的操作类似于以下内容:

$('sometag').children().wrap('<div></div>');
Run Code Online (Sandbox Code Playgroud)

由此产生的DOM操作将所有子项包装在一个div中,而不是每个子项单独包装.

启动示例HTML:

<div>
   <h3>Heading</h3>
   <p>Paragraph</p>
</div>
Run Code Online (Sandbox Code Playgroud)

这行代码的作用是什么:

<div>
    <div>
        <h3>Heading</h3>
    </div>
    <div>
        <p>Paragraph</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想要的是:

<div>
    <div>
        <h3>Heading</h3>
        <p>Paragraph</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

什么是实现我正在寻找的最终结果的正确语法?

jquery

16
推荐指数
1
解决办法
9256
查看次数