我有一个简单地隐藏内容的应用程序Hidden.svelte
:
<script>
let shown = false;
function show() {
shown = true;
}
</script>
<svelte:options accessors={true}/>
{#if shown}
<slot/>
{/if}
Run Code Online (Sandbox Code Playgroud)
家长App.svelte
:
<script>
import Hidden from 'Hidden';
let child;
</script>
<Hidden bind:this={child}>
Content
</Hidden>
<button on:click={() => child.shown = true}>Show</button>
Run Code Online (Sandbox Code Playgroud)
因此,shown
由于<svelte:options accessors={true}/>
在父母中,可以轻松设置孩子的
但是,我想使用方法,show()
因为它不仅可以设置shown
值,还可以执行一些魔术
感谢 Chrome 的 DevTools,我发现所有组件都有一个Array
with属性和方法,可以通过 some 访问.$$.ctx
,因此show()
可以像这样调用Hidden 的方法:
<button on:click={() => child.$$.ctx[2]()}>Show</button>
Run Code Online (Sandbox Code Playgroud)
但是)你知道)有没有合法的方法来做到这一点?
在models.py我有:
class User(modals.Model):
name = models.CharField(max_length=255)
image = models.ImageField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
在admin.py中:
class UserAdmin(admin.ModelAdmin):
list_filter = ['image']
admin.site.register(User, UserAdmin)
Run Code Online (Sandbox Code Playgroud)
我只是想通过图像或不图像来过滤用户(空或空字符串)
但是django显示按图片urls =)过滤
有没有办法使list_filter = ['image']
表现像布尔字段?
建议大!
我刚刚用Django 2.2创建了新的Python 3.7 virtualenv
并runserver
打印:
使用StatReloader监视文件更改
我在Django的文档等中找不到任何信息。
它与Django特别相关吗?它与Django一起使用吗?它能做什么?为什么在PyCharm中将其打印为红色?我应该注意点什么吗?可以禁用吗?
大thx
关于https://developers.google.com/speed/pagespeed/insights/中的结果
spaceless
也许用模板标签全局包装整个 HTML 就差不多了?
{% spaceless %}
<!DOCTYPE html>
<html>
...
</html>
{% endspaceless %}
Run Code Online (Sandbox Code Playgroud)
或者它不安全并且有一些更好的方法?
我有一个简单的任务模型:
class Task(models.Model):
name = models.CharField(max_length=255)
order = models.IntegerField(db_index=True)
Run Code Online (Sandbox Code Playgroud)
还有一个简单的task_create视图:
def task_create(request):
name = request.POST.get('name')
order = request.POST.get('order')
Task.objects.filter(order__gte=order).update(order=F('order') + 1)
new_task = Task.objects.create(name=name, order=order)
return HttpResponse(new_task.id)
Run Code Online (Sandbox Code Playgroud)
视图将新创建的现有任务转移+ 1,然后创建一个新任务.
并且有很多这种方法的用户,我想有一天会因为订购而出错,因为更新和创建肯定应该一起执行.
所以,我只想保持谨慎,这足以避免任何数据损坏:
from django.db import transaction
def task_create(request):
name = request.POST.get('name')
order = request.POST.get('order')
with transaction.atomic():
Task.objects.select_for_update().filter(order__gte=order).update(order=F('order') + 1)
new_task = Task.objects.create(name=name, order=order)
return HttpResponse(new_task.id)
Run Code Online (Sandbox Code Playgroud)
1)可能select_for_update
在filter
现有的任务创建行中应该做更多的事情Task.objects
?
2)return HttpResponse()
位于何处?内部交易区块还是外部?
大thx
例如,我们需要访问body
'spadding-right
let el = document.querySelector('body');
let style = window.getComputedStyle(el);
Run Code Online (Sandbox Code Playgroud)
多亏了这个解释,很明显可以通过以下方式安全地完成:
style.paddingRight
Run Code Online (Sandbox Code Playgroud)
或者
style.getPropertyValue('padding-right')
Run Code Online (Sandbox Code Playgroud)
但是,这似乎也可以正常工作:
style['padding-right']
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?谢谢
我有一个带有多个 GET 参数(同名)的 url -mycompany.com/?a=1&a=2
当我在 django 模板中这样做时:
{{ request.GET }}
Run Code Online (Sandbox Code Playgroud)
我得到:
<QueryDict: {'a': ['1', '2']}>
Run Code Online (Sandbox Code Playgroud)
当我在 django 模板中这样做时:
{{ request.GET.a }}
Run Code Online (Sandbox Code Playgroud)
我得到:
2
Run Code Online (Sandbox Code Playgroud)
当我尝试循环时:
{% for a in request.GET.a %}
{{ a }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我得到:
2
Run Code Online (Sandbox Code Playgroud)
如何使多个 GET 参数作为 django 模板中的列表?谢谢!
我有很多对象,其中3个有name ='AAA'
我通过'name'对它们进行分组并在组中注释num:
my_models = MyModel.objects.order_by('name').values('name').annotate(count=Count('name'))
for i in my_models:
print(i.count, i.name)
Run Code Online (Sandbox Code Playgroud)
我明白了:
3, 'AAA'
1, 'BBB'
...
Run Code Online (Sandbox Code Playgroud)
一切都很好,但是当我尝试添加一些公式来注释Count()时:
my_models = MyModel.objects.order_by('name').values('name').annotate(count=Count('name') / 2)
Run Code Online (Sandbox Code Playgroud)
我明白了:
1, 'AAA'
0, 'BBB'
...
Run Code Online (Sandbox Code Playgroud)
但预计:
1.5, 'AAA'
0.5, 'BBB'
...
Run Code Online (Sandbox Code Playgroud)
编辑:
Python部门与SQL部门通过Django的ORM不同,因此python 3中的2/1返回2.0 - OK,但不在SQL中
我已经注册了一个 GitHub 帐户来测试他们的电子邮件验证过程。所以:
他们向我发送了一封带有链接的电子邮件,其中包含我的用户名和 40 个字符的代码,例如:https: //github.com/users/USERNAME/emails/120066679/confirm_verification/47889d71648523e5d99db5b969f59809c2715fb6
我没有点击链接
4 天后,他们又向我发送了另一封邮件(提醒),要求我验证我的电子邮件,其中包含另一个不同的 40 个字符代码的链接
那么,更改 40 个字符的代码的目的是什么?我记得,其他服务无论如何都会使验证码过期。如果验证链接中已经有用户名,是否真的需要这样做?在暴力破解的情况下,他们可以只计算与特定用户相关的失败尝试并阻止它,对吧?
PS也很有趣,in链接的目的是什么emails/120066679
?(这两个字母相似)
看起来它们的行为完全相同 \xe2\x80\x93 两者都相似dicts
,但都使用.
文字来访问项目,但是它们都不是另一个项目的子类
from argparse import Namespace\nfrom types import SimpleNamespace\n\nissubclass(Namespace, SimpleNamespace) # False\nissubclass(SimpleNamespace, Namespace) # False\n
Run Code Online (Sandbox Code Playgroud)\n那么,两者之间有什么区别吗?\nargparse.Namespace
可以在所有情况下使用吗?
django ×6
javascript ×2
atomic ×1
css ×1
django-admin ×1
django-orm ×1
email ×1
python ×1
python-3.x ×1
security ×1
svelte ×1
transactions ×1