【发布时间】:2014-12-26 20:23:45
【问题描述】:
我有下一个模型:
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='')
例如,我运行下一段代码:
target = Target(name='test-target')
target.save()
sub_target = SubTarget(name='test-sub-target, target=target)
sub_target.save()
所以现在我有了带有外键的 sub_target 对象。
我的目标序列化器如下所示:
class TargetSerializer(serializers.ModelSerializer):
class Meta:
model = Target
fields = ('id', 'name', 'sub_targets')
depth = 1
read_only_fields = ('sub_targets',)
和适当的观点:
class TargetDetail(generics.RetrieveUpdateDestroyAPIView):
model = Target
serializer_class = TargetSerializer
所以,没有什么能阻止我删除只是 target 使用外键创建的对象。而且,这个操作还删除了相关的sub_target对象。我怎样才能避免这种行为?
【问题讨论】:
标签: django rest django-rest-framework