我是 Docker 的新手,一直在尝试使用 Docker 设置 Django。我一直在按照这里的说明进行操作,但遇到了下面 的错误。
File "/usr/local/lib/python3.7/site-
packages/django/contrib/admin/widgets.py", line 152
web_1 | '%s=%s' % (k, v) for k, v in params.items(),
web_1 | ^
web_1 | SyntaxError: Generator expression must be parenthesized
我的Django版本是2.1,Python 3.7。据我所知,这不应该发生,但它确实发生了。我检查了有问题的文件,并且文件编写正确。这是一个已经实施的修复程序,过去应该使用最新版本的 Python 修复此错误。
编辑在这里添加Docker文件:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
docker-compose.yml文件:
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
来自widgets.py:
if params:
related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())
这是 widgets.py 的整个定义表单:
def get_context(self, name, value, attrs):
context = super().get_context(name, value, attrs)
rel_to = self.rel.model
if rel_to in self.admin_site._registry:
# The related object is registered with the same AdminSite
related_url = reverse(
'admin:%s_%s_changelist' % (
rel_to._meta.app_label,
rel_to._meta.model_name,
),
current_app=self.admin_site.name,
)
params = self.url_parameters()
if params:
related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())
context['related_url'] = mark_safe(related_url)
context['link_title'] = _('Lookup')
# The JavaScript code looks for this class.
context['widget']['attrs'].setdefault('class', 'vForeignKeyRawIdAdminField')
if context['widget']['value']:
context['link_label'], context['link_url'] = self.label_and_url_for_value(value)
return context
但是,在尝试组合时,我仍然收到相同的错误代码。
我现在不知道该怎么办。我完全不知所措。这是我第一次遇到这个问题。
相关分类