【发布时间】:2015-09-05 15:42:10
【问题描述】:
我一直在我的许多序列化程序上使用HyperlinkedIdentityField,但是,当我尝试在默认的 Django User 模型上使用它时,我得到一个错误。
class UserSerializer(serializers.ModelSerializer):
userprofile = serializers.HyperlinkedRelatedField(
many=False, view_name='user-profile-detail', read_only=True)
uri = serializers.HyperlinkedIdentityField(
view_name='user-detail')
class Meta:
model = User
fields = ('id', 'username', 'password', 'first_name', 'last_name',
'email', 'is_active', 'is_staff', 'is_superuser',
'last_login', 'date_joined', 'userprofile', 'uri',)
read_only_fields = ('id', 'last_login', 'date_joined',)
extra_kwargs = {'password': {'write_only': True}}
我得到的错误是:
Exception Type: ImproperlyConfigured
Exception Value: Could not resolve URL for hyperlinked relationship using view name
"user-detail". You may have failed to include the related model in
your API, or incorrectly configured the `lookup_field` attribute
on this field.
user-detail 名称确实存在并且在引用该用户的其他表上正常工作。 lookup_field 参数默认使用pk。 userprofile 是默认用户模型的 OneToOne。
我想知道这是否与 Django 的默认 AnonymousUser 有一个 pk 或 -1 有关,但我无法验证这一点。
任何帮助将不胜感激。谢谢
【问题讨论】:
-
您可以尝试在超链接序列化程序中传递查找字段吗?
标签: django django-rest-framework