我正在与数据库中的表建立关系。目前我有一个有三张桌子的教程课。例如(auth\u user表、partyEvent表、friends表)
现在用户应该可以只创建一个partyEvent。朋友可以加入用户创建的任意数量的partyEvent。 Friends模型中的所有者id告诉partyEvent和用户“Friends”属于谁
我可以限制用户只创建一个partyEvent。但是,当我尝试向partyEvent注册朋友时,所有者的id不会被发送。而不是默认值:
owner = models.OneToOneField('auth.User', related_name = 'party', on_delete=models.CASCADE, default='1')
是相当差的。为什么会这样
型号
class PartyEvent(models.Model):
name = models.CharField(max_length=100, blank=False)
location = models.CharField(max_length=100, blank=False)
owner = models.OneToOneField('auth.User', related_name = 'party', on_delete=models.CASCADE, default='1')
class Friends(models.Model):
name = models.CharField(max_length=100, blank=False)
owner = models.ForeignKey('auth.User',related_name = 'friends', on_delete=models.CASCADE, default='1')
序列化程序
class FriendsSerializer(serializers.HyperlinkedModelSerializer):
owner = serializers.ReadOnlyField(source='owner.id')
class Meta:
model = Friends
fields = ('id','name','owner')
序列化程序模型中有ReadOnlyField,这意味着序列化对象在数据库中发布时将排除所有者字段
出现此问题的原因是,序列化程序中的ReadOnlyField仅包含在数据检索中。当通过序列化程序发布数据时,ReadOnlyFields被排除
为了解决你的问题,试试这个
相关问题 更多 >
编程相关推荐