我有下一个服务:
angular.module('app').service('BaseService', function (alertService) {
var service = {};
service.message = "Hello";
service.perform = function () {
alertService.add("success",service.message);
};
return service;
});
Run Code Online (Sandbox Code Playgroud)
现在我想在一些'ChildService'中继承这个服务,并在"World!"上覆盖重写消息.我希望调用ChildService.perform()会显示"World!"的警告.
这样做的正确方法是什么?
我有下一个型号:
class Target(models.Model):
name = models.CharField(max_length=100, blank=False)
class SubTarget(models.Model):
target = models.ForeignKey(Target, related_name='sub_targets')
name = models.CharField(max_length=100, blank=True, null=True, default='')
Run Code Online (Sandbox Code Playgroud)
例如,我运行下一个代码:
target = Target(name='test-target')
target.save()
sub_target = SubTarget(name='test-sub-target, target=target)
sub_target.save()
Run Code Online (Sandbox Code Playgroud)
所以现在我有了带外键的sub_target对象.
我的目标序列化器看起来像:
class TargetSerializer(serializers.ModelSerializer):
class Meta:
model = Target
fields = ('id', 'name', 'sub_targets')
depth = 1
read_only_fields = ('sub_targets',)
Run Code Online (Sandbox Code Playgroud)
和适当的观点:
class TargetDetail(generics.RetrieveUpdateDestroyAPIView):
model = Target
serializer_class = TargetSerializer
Run Code Online (Sandbox Code Playgroud)
所以,没有什么能阻止我从缺失只是针对与外键创建的对象.而且,此操作删除了相关的sub_target对象.我该如何避免这种行为?
我试图用鼻子进行测试,这里是项目结构:
ForTest
??? test_module
? ??? test_suite.py
??? test_runner.py
Run Code Online (Sandbox Code Playgroud)
test_suite.py包含:
def test_1():
pass
def test_2():
pass
Run Code Online (Sandbox Code Playgroud)
和test_runner.py包含下一个:
import nose
nose.main(argv=['','-v']).run_and_exit()
Run Code Online (Sandbox Code Playgroud)
当我运行test_runner.py时,我在输出中有下一个内容:
test_suite.test_1 ... ok
test_suite.test_2 ... ok
test_suite.test_1 ... ok
test_suite.test_2 ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.002s
OK
Run Code Online (Sandbox Code Playgroud)
鼻子跑两次测试.如果我连接自己的插件,我可以看到,例如,mehtod addSuccess()调用4次.你能解释一下,为什么我会得到这种行为,我该如何预防呢?
有两种模型:用户模型和客户端模型。
\n\nClient.hasMany(User);\nUser.belongsTo(Client);\nRun Code Online (Sandbox Code Playgroud)\n\n接下来,我正在做:
\n\nUser.findAll({\n include: [{\n model: Client,\n where: {\n id: \xe2\x80\x9c1\xe2\x80\x9d\n }\n }]\n});\nRun Code Online (Sandbox Code Playgroud)\n\n此代码工作正常,但在最终输出中包含具有所有属性的客户端模型。我仍然可以执行 \xe2\x80\x9cwhere\xe2\x80\x9d 语句,但完全排除客户端模型?
\n