Django Restframework N到N表

时间:2016-05-30 08:51:28

标签: python django rest

我的model.py中有两个类:

class Table(models.Model):
    name = models.CharField(max_length=100, blank=True)

class Activity(models.Model):
    name = models.CharField(max_length=100, blank=False)
    process = models.CharField(max_length=100, blank=True, default='')

对于这两个类,我分别创建了一个序列化器:

class TableSerializer(serializers.Serializer):
    pk = serializers.IntegerField(read_only=True)
    name = serializers.CharField(required=True, allow_blank=False, max_length=100)

    def create(self, validated_data):
        return Table.objects.create(**validated_data)

    def update(self, instance, validated_data):
        instance.name = validated_data.get('name', instance.name) 
        instance.save()
        return instance

(活动相同)

我现在想存储表和活动之间的关系。一个活动可以有多个表。现在我不知道是否需要创建一个像这样的新类:

class TableActivity(models.Model):
    activtiy = models.ManyToManyField('Activity')
    table = models.ManyToManyField('Table')

或者这可以包含在活动中了吗? 我的模型/序列化器应该怎么样?

1 个答案:

答案 0 :(得分:1)

您不应该创建类TableActivity。您可以将字段activtiy = models.ManyToManyField('Activity')添加到表格Table,或将字段table = models.ManyToManyField('Table')添加到表格Activity。您应该使用model serializer在数据库中创建对象