2016-05-30 64 views
0

我在我的model.py两类:的Django Restframework N到N表

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

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

+0

因此,将表格字段添加到活动中是有意义的,但表格列表应该已经预定义,并且当您创建新活动时,您需要从表格列表中进行选择(或创建一个新的)。它仍然是一样的吗? – Stef