我有以下模型,其中每个项目都有一组特定的权限。
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导入/导出到此模型。如何在资源管理子类中引用项目模型的权限?
我可以通过
访问权限project.projectpermission_set.all()
如果project是Project对象。
答案 0 :(得分:0)
回答你的问题
如何从项目模型中引用权限?
如果要对使用权限的Project对象进行查询,请使用:
Project.objects.filter(projectpermission__permissions__name='whatevervalue').
Viceversa,查询对项目进行过滤的权限对象:
Permissions.objects.filter(projectpermission__project__name='whatever')
有关如何更方便地命名关系的更多信息,请参阅this
答案 1 :(得分:0)
我重写了ModelResources的after_import_row方法来解析和创建与反向相关的模型。就我而言,效果很好。