在Vue 2.0中,文档和其他人清楚地表明,从父母到孩子的沟通是通过道具进行的.
父母如何告诉孩子一个事件是通过道具发生的?
我应该只看一个名为事件的道具吗?这感觉不对,也没有替代方案($emit/ $on是孩子到父母,而中心模型是远程元素).
我有一个父容器,它需要告诉它的子容器,可以在API上使用某些操作.我需要能够触发功能.
我正在尝试将当前站点迁移到vuejs.站点地图必须是:
/login
/signup
/password-reset
/browse
/search
... dozens of other routes
Run Code Online (Sandbox Code Playgroud)
由于其中一些路线共享了很多fx,我让它们成为父路线的子路:
[{ // public routes
path: '/',
component: Auth,
children: [
{ path: '/login', component: Login },
{ path: '/signup', component: Signup },
{ path: '/password-reset', component: PasswordReset },
]
},
{ // routes behind Authentication
path: '/',
component: Home,
children: [
{ path: '/browse', component: Browse },
{ path: '/search', component: Search }
]
}]
Run Code Online (Sandbox Code Playgroud)
问题很明显:Auth和Home基本组件现在在技术上是相同的路径路径,我得到路由错误.由于我将有很多路由共享相同的基本组件和fx,我想让他们成为这些抽象状态的孩子.
问题1:如何在不冲突的情况下实现这些路由及其父抽象状态,而无需将所有包装逻辑添加到子项中?
问题2:我怎样才能使父状态()不可路由,或者如果是,则默认为子状态?
有几十篇关于 Django 嵌套关系中的 n+1 查询的帖子,但我似乎无法找到我的问题的答案。这是上下文:
模型
class Book(models.Model):
title = models.CharField(max_length=255)
class Tag(models.Model):
book = models.ForeignKey('app.Book', on_delete=models.CASCADE, related_name='tags')
category = models.ForeignKey('app.TagCategory', on_delete=models.PROTECT)
page = models.PositiveIntegerField()
class TagCategory(models.Model):
title = models.CharField(max_length=255)
key = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
一本书有很多标签,每个标签属于一个标签类别。
序列化器
class TagSerializer(serializers.ModelSerializer):
class Meta:
model = Tag
exclude = ['id', 'book']
class BookSerializer(serializers.ModelSerializer):
tags = TagSerializer(many=True, required=False)
class Meta:
model = Book
fields = ['title', 'tags']
def create(self, validated_data):
with transaction.atomic():
tags = validated_data.pop('tags')
book = Book.objects.create(**validated_data)
Tag.objects.bulk_create([Tag(book=book, **tag) for tag in tags])
return book …Run Code Online (Sandbox Code Playgroud) 目标:创建和更新资源时,在django管理表单上显示特定user_id于请求的只读信息。
此显示应该是一个只读字段(readonly,未禁用)。的user_id显示被从请求用户派生(request.user),以使初始值被从设置。
在这篇文章之后,我们应该get_form像这样简单地在方法中进行设置:
def get_form(self, request, obj=None, *args, **kwargs):
form = super(ProfileAdmin, self).get_form(request, *args, **kwargs)
form.base_fields['user'].initial = request.user
return form
Run Code Online (Sandbox Code Playgroud)
但是,用户不再处于base_fields只读状态。实际上,我在任何地方都找不到它。有什么想法吗?
其他帖子建议保存,我打算这样做,但在此之前我需要将其显示在表单上。