這是我的(簡化的)models.py:'RelatedManager' 對象在DRF沒有屬性 'pk' 中串行
class MyList(models.Model):
title = models.CharField(max_length=40)
participants = models.ManyToManyField(
settings.AUTH_USER_MODEL,
through='ParticipantsInList',
related_name='participants',
)
class ParticipantsInList(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='user')
list_parent = models.ForeignKey(MyList, related_name='list_parent')
moderator = models.BooleanField(default=False)
和我的serializers.py:
class ParticipantsInListSerializer(serializers.ModelSerializer):
class Meta:
model = ParticipantsInList
exclude = ('id',)
和我的views.py:
我想不通爲什麼在views.py使用此:ParticipantsInList.objects.filter(LIST_ID = LIST_ID)作品,同時採用List.objects.get(PK = LIST_ID).participants.all ()引發異常'RelatedManager'對象沒有屬性'pk'。
我想使用後者,因爲我覺得它好看,還因爲我認爲它應該工作..
我不知道發生了什麼究竟怎麼回事,但你不應該使用'list'作爲模型的字段名稱,因爲它保留爲內置關鍵字的python。如果你這樣做,它可能會導致很多問題。 –
謝謝,我現在改變了它。然而,這個問題在這個特殊情況下與這個問題沒有關係。儘管我設法解決了這個問題,但如果您有興趣,可以在下面找到答案。 –