3

我有以下模型,其中每个项目都有一组特定的权限。

class Bank(models.Model):
    name = models.CharField(max_length=255, unique=True)

    def __unicode__(self):
        return self.name


class Project(models.Model):
    name = models.CharField(max_length=255, null=False)
    launch_date = models.CharField(max_length=20, null=False)
    possession_date = models.CharField(max_length=20, null=False)
    bank = models.ManyToManyField('Bank')

    def __unicode__(self):
        return self.name

class Permissions(models.Model):
    name = models.CharField(max_length=255)

    def __unicode__(self):
        return self.name


class ProjectPermission(models.Model):
    project = models.ForeignKey('Project')
    permission = models.ForeignKey('Permissions')
    value = models.CharField(max_length=255)

    def __unicode__(self):
        return self.project.name

我想将数据从 csv 导入/导出到这个模型。如何在 Resource Admin 子类中引用项目模型的权限?

我可以通过访问权限

project.projectpermission_set.all()

如果项目是一个项目对象。

4

3 回答 3

0

回答你的问题

如何引用项目模型的权限?

如果您想查询对权限过滤的项目对象,请使用:

Project.objects.filter(projectpermission__permissions__name='whatevervalue').

反之亦然,查询项目上的权限对象过滤:

Permissions.objects.filter(projectpermission__project__name='whatever')

有关如何更方便地命名关系的更多信息,请参阅此内容

于 2015-07-03T08:26:16.717 回答
0

使用dehidrate_permissions然后,正如@Pynchia 所说,

Project.objects.filter(projectpermission__permissions__name='whatevervalue').
于 2021-08-31T14:04:57.780 回答
0

我重写了 ModelResources 的 after_import_row 方法来解析和创建反向相关的模型。就我而言,效果很好。

于 2019-08-05T12:26:16.193 回答