gpt4 book ai didi

python - Tastypie的detail_uri_name与foreignkey的属性

转载 作者:行者123 更新时间:2023-11-29 07:13:58 25 4
gpt4 key购买 nike

我在 django 中使用我自己的用户类扩展了 User Django 类:

class MyUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, related_name='my_user')
theme = models.IntegerField(default=0)
tags = TaggableManager()

以及相应的 tastypie 资源,我想将其与 Django 用户类中的用户名一起使用 detail_uri_name 。虽然,我不知道如何。

class MyUserResource(ModelResource):
class Meta:
queryset = User.objects.all()
allowed_methods = ['get']
detail_uri_name = 'user_username'# ????

我遇到的错误是:'MyUser'对象没有属性'user__username'

如何从 MyUser 访问用户名作为属性?

该行是:

 detail_uri_name = 'user_username'# ????

从 shell 中,我可以执行 MyUser.objects.all()[0].user.username 来获取关联 django 类的用户名。

最佳答案

您不能使用其他类属性作为detail_uri_name

但是,理论上:

class MyUserResource(ModelResource):
class Meta:
queryset = User.objects.all().select_related('user')
allowed_methods = ['get']
detail_uri_name = 'user__username'

def get_bundle_detail_data(self, bundle):
attrs = self._meta.detail_uri_name.split('__')
return getattr(getattr(bundle.obj, attrs[0]), attrs[1])

关于python - Tastypie的detail_uri_name与foreignkey的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648946/

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