gpt4 book ai didi

django - "AttributeError"和 Django Rest Framework 中的 PrimaryKeyRelatedField

转载 作者:行者123 更新时间:2023-12-04 14:33:39 30 4
gpt4 key购买 nike

我是 DRF 的新手,并且我正在关注 DRF 的官方教程。

这是 snippet/serializers.py 文件中 UserSerializer 类的两个版本。 snippet 是应用程序名称。

class UserSerializer(serializers.ModelSerializer):
snippet = serializers.PrimaryKeyRelatedField(many=True)

class Meta:
model = User
fields = ('id', 'username','snippet')

当我尝试访问此 URL 时抛出以下错误。

http://127.0.0.1:8000/users/ 

错误:

AttributeError at /users/
type object 'User' has no attribute 'snippet'

当我像下面这样写时,完全没有错误。

class UserSerializer(serializers.ModelSerializer):

class Meta:
model = User
fields = ('id', 'username',)

它必须与 PrimaryKeyRelatedField 相关。请告诉我它是什么。?以及为什么会影响结果。如果您发现我的问题很差,请不要贬低它并告诉我。

最佳答案

请查看您的 snippets/models.py

owner = models.ForeignKey('auth.User', related_name='snippets')

你错过的是 related_name 参数。

class UserSerializer(serializers.ModelSerializer):
snippets = serializers.PrimaryKeyRelatedField(many=True)

class Meta:
model = User
fields = ('id', 'username', 'snippets')

相关模型 ForeignKey 上的 related_name 参数应该匹配序列化程序的“字段名称”,也应该在字段元组中。

关于django - "AttributeError"和 Django Rest Framework 中的 PrimaryKeyRelatedField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26255000/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com