【发布时间】:2021-06-05 10:08:35
【问题描述】:
我有两个模型,如下所示。我正在使用 Django restframework。
class Family(models.Model):
name= models.CharField(max_length=100)
class Parishioner(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
family = models.ForeignKey(Family, on_delete=models.CASCADE)
有我的视图集
class FamilyViewSet(viewsets.ModelViewSet):
queryset = Family.objects.all()
serializer_class = FamilySerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
class ParishionerViewSet(viewsets.ModelViewSet):
queryset = Parishioner.objects.all()
serializer_class = serializers.ParishionerSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
这些是我的序列化器
class FamilySerializer(serializers.ModelSerializer):
class Meta:
model = Family
fields = ('id', 'name')
read_only_fields = ('id',)
class ParishionerSerializer(serializers.ModelSerializer):
class Meta:
model = Parishioner
fields = ('id', 'first_name', 'last_name', 'family')
read_only_fields = ('id',)
depth = 1
所以基本上Parishioner 可以有一个Family。 Family有多个members(Parishioners)
目前我必须去所有Parishioners并选择Family。
是否可以将名为 members 的字段添加到 Family 模型,其中成员将是 Array 的 Existing Parishioners ?
还是有其他方法可以解决这个问题?
【问题讨论】:
-
在数据库端这样做是个坏主意,因为这意味着数据库不再检查这个。但是您可以在序列化程序中轻松做到这一点。
标签: python-3.x django django-models django-rest-framework django-views