我正在与数据库中的表建立关系。目前,我有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/