小编zlo*_*ady的帖子

Python:如何使用包含在包外的修改版本覆盖包中的一个模块?

我想用我自己的模块版本更新python包中的一个模块,具有以下条件:

  • 我希望我更新的模块存在于原始包之外(因为我无法访问包源,或者因为我想将我的本地修改保存在单独的repo中等).
  • 我想要import引用原始包/模块的语句来解析我的本地模块

这是我想用django的细节做的一个例子,因为这就是我出现这个问题的地方:

说这是我的项目结构

django/
  ... the original, unadulterated django package ...
local_django/
  conf/
    settings.py
myproject/
  __init__.py
  myapp/
    myfile.py
Run Code Online (Sandbox Code Playgroud)

然后在myfile.py中

# These imports should fetch modules from the original django package
from django import models
from django.core.urlresolvers import reverse

# I would like this following import statement to grab a custom version of settings 
# that I define in local_django/conf/settings.py 
from django.conf import settings

def foo():
  return settings.some_setting
Run Code Online (Sandbox Code Playgroud)

我可以用__import__声明做一些魔术myproject/__init__.py来完成这个吗?是否有更"pythonic"的方法来实现这一目标?

更新 - 为什么我要这样做

这是我觉得这很有意义的场景. …

python django

13
推荐指数
1
解决办法
9951
查看次数

你能为管理员推荐一个好的django文件管理器吗?

我正在寻找一个强大,稳定的django文件管理器,用于django管理员.

我的要求愿望清单:

  1. 允许浏览和选择服务器上的文件(例如图像)
  2. 允许上传文件.多个文件上传会很棒(例如uploadify)
  3. 不要求我在我的模型定义中使用自定义字段(如django-filebrowser那样).我想要的东西,可以在理想地admin.py连接到CharField(或的FileField的ImageField的),就像卡尔·迈耶的Django的adminfiles.

我使用的Django filebrowser(非格拉佩利版本),也看了(但不使用)的Django adminfiles.两者都很好.但是django-filebrowser需要在我的模型中使用自定义字段,而且我不想要'版本'(多个图像大小)功能.django-adminfiles用于将文件作为内联插入textareas,所以不是我想要的.

我很乐意修改其中一个以满足我的需求,但是如果有其他替代方案我不想这样做会讨厌.

django django-admin

9
推荐指数
1
解决办法
6759
查看次数

Django模型和SELECT连接两个或多个表?

如何使用Django模型使用两个(或更多)连接表进行选择?

例如:

class Album(models.Model):
    artist = models.ForeignKey(Musician)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()

class Song(models.Model):
    album = models.ForeignKey(Album)
    name = models.CharField(max_length=100)
    num_stars = models.IntegerField()

SELECT * from album, song where (album.id = song.album_id) and (album.artist_id = X)
Run Code Online (Sandbox Code Playgroud)

django django-models

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

如何在类中包装不安全的python方法(例如os.chdir)使其线程/异常安全?

如何在python中"cd"的问题中,接受的答案建议在类中包装os.chdir调用以使返回原始dir异常安全.这是推荐的代码:

class Chdir:         
  def __init__( self, newPath ):  
    self.savedPath = os.getcwd()
    os.chdir(newPath)

  def __del__( self ):
    os.chdir( self.savedPath )
Run Code Online (Sandbox Code Playgroud)

有人可以详细说明这是如何使不安全的呼叫异常安全的吗?

python exception-handling

4
推荐指数
2
解决办法
3866
查看次数