我不想将docker secrets与swarm一起使用,我发现这样做是可行的。基本上,docker只是将/ run / secrets挂载到docker容器中,但是当我进入新建的docker容器并echo $POSTGRES_PASSWORD_FILE获取我的秘密文件的路径时。
root@94a0f092eeb1:/# echo $POSTGRES_PASSWORD_FILE
/run/secrets/db_password
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml档案
version: '3.1'
services:
postgres:
image: postgres:9.4
container_name: postgres
environment:
POSTGRES_USER: "db_user"
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
POSTGRES_DB: "my_db"
secrets:
- db_password
volumes:
- ./postgres:/var/lib/postgresql/data
expose:
- 5432
secrets:
db_password:
file: ./POSTGRES_PASSWORD.txt
Run Code Online (Sandbox Code Playgroud)
我的密码设置正确/文件有问题吗?
我正在尝试将项目经理分配给员工.
每个员工都可以成为项目经理.
项目经理可以拥有多名员工.
员工只能拥有1名项目经理.
但是,当我这样做 Employee.objects.get(name='HereHere').get_xxx()
我有 AttributeError: 'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
class Employee(models.Model):
name = models.CharField(max_length=20, unique=True)
pm = models.ManyToManyField('self', symmetrical=False, through='PM', related_name='related_to', )
def add_pm(self, employee, ):
pm, created = PM.objects.get_or_create(from_employee=self, to_employee__in=employee,)
return pm
def remove_pm(self, employee, ):
PM.objects.filter(
from_employee=self,
to_employee=employee,
).delete()
return
def get_relationships(self, ):
return self.pm.filter(
to_employee__from_employee=self) #<----- AttributeError: 'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
def get_related_to(self,):
return self.related_to.filter(
from_employee__to_employee=self) #<----- AttributeError: 'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
def __str__(self):
return '%s' % self.name …Run Code Online (Sandbox Code Playgroud) from forms.py import PersonCreateForm
class PersonCreateView(CreateView):
model = Person
form_class = PersonCreateForm
template_name = "my_app/create_person.html"
def form_valid(self, form):
self.object = form.save()
return redirect('/homepage/')
class PeopleListView(ListView):
[...]
context.update({
'task_form': TaskCreateForm(),
return context
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我只需添加处理PersonCreateView的动作URL.
<form action="{% url 'people_create' %}" method="post">{% csrf_token %}
Run Code Online (Sandbox Code Playgroud)
当Form有效时,所有数据都保存没有问题,并将其重定向到'/ homepage /.但是当我的表单无效时,它会将我重定向到{% url 'people_create' %}并在/ homepage/people_create /中显示错误
我怎么能避免这种情况?我希望所有错误显示在同一页面而不重定向.
[datetime.datetime(2015, 6, 23, 0, 0), datetime.datetime(2015, 6, 24, 0, 0)]
Run Code Online (Sandbox Code Playgroud)
到
[datetime.datetime(2015, 6, 23, 0, 0).date(), datetime.datetime(2015, 6, 24, 0, 0).date()]
Run Code Online (Sandbox Code Playgroud)
所以我可以这样:
[datetime.date(2015, 6, 23), datetime.date(2015, 6, 24)]
Run Code Online (Sandbox Code Playgroud)