这是一个关于代码风格和最佳实践的问题。
在我们的 Django 项目中,我们有基于类的视图,其命名如下:
urls.py
path('project/<int:pk>/clone/', CloneView.as_view(), name='clone'),
path('project/<int:pk>/delete/', ProjectDelete.as_view(), name='project-delete'),
path('project/<int:pk>/optimize/', ProjectOptimize.as_view(), name='project-optimize'),
path('project/<int:pk>/report/', ReportView.as_view(), name='report'),
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,其中一些我们会说MyClassView.as_view(),而另一些我们只是说MyClass.as_view()。但我也注意到,在文档中,他们总是使用第一种形式: https: //docs.djangoproject.com/en/2.2/topics/class-based-views/
引起我注意的是我们从不使用视图名称,例如:name=clone-name。
我的问题是:在类名中明确说明该类是一个视图有什么明显的优点吗?不使用它是“错误”吗?
我想保持我们的代码库一致。谢谢你们!
我对某些 Pandas 操作感到烦恼,有人建议将其升级到最新版本可能会解决问题。\n我将其从版本 0.24.1 更新到 0.25.3
\n\n当我检查虚拟环境中的版本时,我得到:
\n\n(matrix) \xe2\x9e\x9c web git:(T24_2019) pip freeze | grep pandas\npandas==0.25.3\nRun Code Online (Sandbox Code Playgroud)\n\n但是当我在笔记本中做同样的事情时,我得到:
\n\npandas==0.23.4\nNote: you may need to restart the kernel to use updated packages.\nRun Code Online (Sandbox Code Playgroud)\n\n我确实重启了很多次内核,但从来没有成功过。\n有没有具体的重启方法?这与 iPython 安装了我的软件包的其他版本有什么关系吗?
\n\n注意:我不使用 Anaconda。
\n\n谢谢你!
\n我正在学习如何使用 Terraform 来管理我的 AWS 基础设施。
周一,我根据我的 Terraform Apply 从头开始创建了这一切。
星期二(第二天),我想通过一些代码更改来更新我的应用程序(不会影响基础设施的其余部分,只会影响 ECS 中的图像),并在我的 terraform apply 输出中收到此错误消息:
Error: Error modifying DB Instance foo-staging-db: InvalidParameterCombination: Cannot upgrade postgres from 11.8 to 11.4
Run Code Online (Sandbox Code Playgroud)
当我仔细检查我的地形时,database.tf我看到了这个:
resource "aws_db_instance" "main" {
...
engine = "postgres"
engine_version = "11.4"
...
}
Run Code Online (Sandbox Code Playgroud)
有人知道这里会发生什么吗?
这应该是一个相当容易的,但我真的很难自己弄清楚。
我正在做一个房地产应用程序,我需要我的用户能够上传他们的房屋图片。每个图像都与一个房子相关,每个房子都与一个用户相关。
它的工作方式是,但是如果用户使用我的表单集提交一个空表单,整个事情就会中断,因为它向用户和房屋注册了一个不存在的图像。我怎样才能防止这种情况?
这是我的观点:
def photos_formset(request, *args, **kwargs):
pk = kwargs['pk']
ImovelPhotosModelFormset = modelformset_factory(ImovelPhotos, form=ImovelPhotosForm)
formset = ImovelPhotosModelFormset(
request.POST or None, request.FILES or None,
queryset = Imovel.objects.get(pk=pk).imovelphotos_set.all(),
)
if formset.is_valid():
for form in formset:
if not request.FILES:
break
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.imovel = Imovel.objects.get(pk=pk)
obj.save()
return HttpResponseRedirect('/lares/{pk}/'.format(pk=pk))
context = {
"formset": formset,
}
return render(request, "imovel_photos.html", context)
Run Code Online (Sandbox Code Playgroud)
看起来更像是潜在答案的事情是这样的,但它不起作用,如果我这样做,什么也不会发生:
if form.is_valid() and not form.empty_permitted:
Run Code Online (Sandbox Code Playgroud) 我最近将 macOS 更新到了新的 Catalina 版本,并按照建议从 bash 切换到了 zsh。问题是在我的工作流程中我们做了一些需要正则表达式的文件操作,我不知道如何让它与 zsh 一起工作。
这是我的两个正则表达式:
ls | grep ^[0-9].*.chunk.js$
ls | grep ^main.*.chunk.js$
Run Code Online (Sandbox Code Playgroud)
它们应该匹配以下文件:main.d9a85e98.chunk.js和2.c2cbac0f.chunk.js
任何想法或资源?
谢谢!
django ×2
amazon-rds ×1
bash ×1
django-forms ×1
django-views ×1
formsets ×1
ipython ×1
python ×1
regex ×1
terraform ×1
version ×1
zsh ×1