python - Tastypie的detail_uri_name与foreignkey的属性

标签 python mysql django api tastypie

我在 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/

相关文章:

python - psycopg2没有错误但未插入数据库

python - 为什么这两个 API(twitter geo/search API)返回不同的结果集?

javascript - 在mysql数据库 Node js中动态插入多行?

python - 是否可以在 WebStorm 中为 Django/html 模板设置自动缩进?

python - Twisted:创建线程池然后守护进程导致无信息挂起

python - 如何在 keras 神经网络中进行简单的数据记忆

python - 检测串口设置

MySQL 触发器不起作用

mysql - 如何添加格式化数字列

python - Django Rest框架中嵌套序列化器的过滤查询集