我有一个使用MatInputAngular Material的模板。我试图从代码中访问这个组件,@ViewChild以便我可以以编程方式改变focused状态,但是MatInput当视图初始化时它不存在 - 它的存在是由*ngIf指令确定的。基本上,当视图加载时,有一个p带有一些文本的元素。如果用户单击该元素,它将被替换input为起始值是原始元素文本的 。当它失去焦点时,它会被保存并恢复为一个p元素。问题是当他们第一次单击文本进行更改时,input创建的文本没有焦点 - 他们必须再次单击它才能开始编辑。我希望他们能够单击一次并开始输入。
这是我的相关代码。
模板:
<mat-form-field *ngIf="selected; else staticText" class="full-width">
<input matInput type="text" [(ngModel)]="text" (blur)="save()">
</mat-form-field>
<ng-template #staticText>
<p class="selectable" (click)="select()">{{ text }}</p>
</ng-template>
Run Code Online (Sandbox Code Playgroud)
打字稿:
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
import { MatInput } from '@angular/material';
import { AfterViewInit } from '@angular/core/src/metadata/lifecycle_hooks';
@Component({
selector: 'app-click-to-input',
templateUrl: './click-to-input.component.html',
styleUrls: ['./click-to-input.component.scss']
})
export class ClickToInputComponent …Run Code Online (Sandbox Code Playgroud) 我有一个 django 模型,我想向其中添加 UUIDField :
uuid = models.UUIDField(
default = uuid.uuid4,
unique = True,
editable = False
)
Run Code Online (Sandbox Code Playgroud)
我希望这个 uuid 是唯一的,但是在迁移现有数据库时,出现以下错误:
django.db.utils.IntegrityError: (1062, "Duplicate entry '3ba46cb5f7f340ffa43e348cb789901a' for key 'carbon.uuid'")
Run Code Online (Sandbox Code Playgroud)
如果已经使用了另一个 uuid,我如何提供默认值?
我想以编程方式启用默认情况下排除的字段...
模型:
class MyModel(models.Model):
name = models.CharField(max_length=100)
an_excluded_field = models.TextField()
my_bool = models.BooleanField(default=False) # this is the field to conditionally enable...
Run Code Online (Sandbox Code Playgroud)
形成:
class MyModelForm(ModelForm):
class Meta:
model = EmailTemplate
excludes = ('an_excluded_field', 'my_bool')
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情(或者那种效果......):
form = MyModelForm(enable_my_bool=True)
Run Code Online (Sandbox Code Playgroud)
这几乎就像这篇文章(我希望默认排除字段): 如何在表单的子类中排除ModelForm中的声明字段?
模型中的电子邮件字段可以用作其余 api 的查找字段吗?
我有一个模型“用户”,其中 username=models.CharField() 和 email=models.EmailField() 作为成员。我想将电子邮件设置为视图集中的查找字段,并具有以下相同的代码。
def get_queryset(self):
if 'email' in self.kwargs:
return User.objects.filter(email=self.kwargs['email'])
else:
return User.objects.all()
lookup_field = 'email'
lookup_url_kwarg = 'email'
Run Code Online (Sandbox Code Playgroud)
但是,由于电子邮件字段始终包含一个“.”,查找失败并显示“当前路径与这些中的任何一个都不匹配”消息。我们如何使用包含 '.' 的值执行成功的 api 查找。例如电子邮件
获取/api/user/abc@def.com