关系数据库Django Rest Fram

2024-09-27 00:13:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试与我的数据库表建立关系。我现在有一节带三张桌子的辅导课。例如(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')

Tags: 用户nameauthiddefaultonmodelsdelete
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:32

可以通过将serializers.CurrentUserDefault()指定为序列化程序字段默认值来设置当前用户。以下是doc中的一个示例:

owner = serializers.HiddenField(
    default=serializers.CurrentUserDefault()
)

相关问题 更多 >

    热门问题