我为用户提供了一个警报系统。用户可以订阅类别,并根据我将生成警报。
我已将模型定义为此类警报。
class City(models.Model):
name = models.CharField(max_length=25)
def __unicode__(self):
return self.name
class Area(models.Model):
name = models.CharField(max_length=25)
city = models.ForeignKey(City)
def __unicode__(self):
return self.name
class Category(models.Model):
name = models.CharField(max_length=25)
def __unicode__(self):
return self.name
class SubscribeAlert(models.Model):
category = models.ForeignKey(Category)
user = models.ForeignKey(settings.AUTH_USER_MODEL)
status = models.BooleanField(default=False)
attributes = JSONField('Subscriptions', null=True, blank=True)
class SubscribeLocation(models.Model):
subscribe = models.ForeignKey(SubscribeAlert)
area = models.ForeignKey(Area)
用户可以选择类别并为通知选择多个区域。 这是我的模型结构对于这种情况是否正常?
我如何定义其余的ModelSerializer同时插入SubscribeAlert和许多SubscribeLocation。?
class NotifyCreateSerializer(ModelSerializer):
class Meta:
model = SubscribeAlert
如何扩展此功能以创建订阅?
提前致谢。
答案 0 :(得分:1)
您需要使用nested serializers。这是示例(可能不起作用)
class SubscribeLocationSerializer(ModelSerializer):
class Meta:
model = SubscribeLocation
class NotifyCreateSerializer(ModelSerializer):
subscribelocation_set = SubscribeLocationSerializer(many=True)
class Meta:
model = SubscribeAlert
fields = ('category', 'user', 'status', 'attributes',
'subscribelocation_set')