我正在与数据库中的表建立关系。目前,我有3表学习课程。例如(auth_user表,partyEvent表,friends表)。

现在,用户应该只能创建一个partyEvent。朋友可以加入用户创建的任意数量的partyEvent。
Friends模型中的所有者ID告​​诉partyEvent和用户“朋友”所属。

我能够限制用户仅创建一个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,这意味着序列化对象在数据库中发布时将排除所有者字段。

关于python - Owner_id不能为null。 DRF关系数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44195210/

10-13 05:20