我一直试图让两个第三方应用程序在一起玩得很好,而且由于他们的名字,它并没有为我工作.
我试图开始工作的两个应用程序是django-user-accounts和django-allauth.问题是,两个应用程序使用相同的命名空间"帐户",我不明白我应该修复它们的方式.
我确实找到了一些东西像这样,这似乎是去修复它的方式,但是当我试图实现它,我有两个问题.
allauth包下面有许多不同的应用程序,为了获取它的帐户应用程序文件夹,我还必须allauth首先创建文件夹,这使得其他应用程序无法访问.这是我到目前为止所拥有的.
在我的项目文件夹下我创建了这个结构:
allauth
??? account
? ??? apps.py
? ??? __init__.py
??? __init__.py
Run Code Online (Sandbox Code Playgroud)
在allauth.account.__init__,我有:
from django.apps import AppConfig
default_app_config = 'allauth.account.apps.CustomAccountAppConfig'
Run Code Online (Sandbox Code Playgroud)
在allauth.account.apps我有:
from django.apps import AppConfig
class CustomAccountAppConfig(AppConfig):
verbose_name = 'custom account'
name = "allauth.account"
label = "custom_account"
def __init__(self, app_name, app_module):
AppConfig.__init__(self,app_name, app_module)
Run Code Online (Sandbox Code Playgroud)
这似乎解决了与名称的冲突,但我得到了ImportError: No module named 'allauth.socialaccount',因为它已经覆盖了allauth包.
如何解决此命名冲突并保持所有其他子包和应用程序正常工作?
我正在尝试安装 jquery-ui-dist 包,当我运行 collectstatic 时,当 url 位于样式表中的引号内时,whitenoise 似乎有问题。
我得到的错误是:
MissingFileError: The file 'jquery-ui-dist/"images/ui-icons_555555_256x240.png"' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7fb16b7000b8>.
The CSS file 'jquery-ui-dist/jquery-ui.css' references a file which could not be found:
jquery-ui-dist/"images/ui-icons_555555_256x240.png"
Please check the URL references in this CSS file, particularly any
relative paths which might be pointing to the wrong location.
Run Code Online (Sandbox Code Playgroud)
我看到它似乎认为它正在寻找一个错误的文件名,因为它保留了它周围的引号,我认为原因是因为源文件url("images/ui-icons_555555_256x240.png")在不需要引号时有,所以我运行sed -i 's/\"images\/ui-icons_555555_256x240.png\"/images\/ui-icons_555555_256x240.png/g' jquery-ui.css了源文件,它删除了引号,但我仍然收到错误。
我假设 whitenoise 或 jquery-ui-dist 包存在问题,但在问题最终得到解决之前,我至少需要一个临时解决方案,我什至不确定实际问题出在哪里.
编辑:
我发现是 css 文件中的注释导致了这个问题。我不知道为什么 whitenoise 正在解析评论,我也不知道除了手动删除这些评论之外我还能做些什么。
我正在尝试在字典中获取具有最低值的密钥,其中密钥位于单独的列表中.我也担心以我的方式初始化变量"key"可能会在将来引起麻烦,即使我认为不会.
d = { "a":3, "b":2, "c":7 }
l = ["a","b"]
key = l[0]
for c in l:
key = c if d[c] < d[key] else key
print key
Run Code Online (Sandbox Code Playgroud)
我仍然试图处理列表理解.我尝试过这样的东西来替换for循环和所有东西,但它不起作用:
key = c if d[c] < d[key] else key for c in l
Run Code Online (Sandbox Code Playgroud)
结束语法错误无效.