从modelfield ManytoMany获取Django对象

时间:2017-07-10 14:56:10

标签: django

我想得到你的帮助以解决我的问题。

我有一个名为Identity的Django应用程序,其中包含一个重要的模型:Societe

class Societe(models.Model):

    Nom = models.CharField(null= False, max_length=70, verbose_name='Nom de Société')
    ...
    #Some model fields
    ...
    user = models.ManyToManyField(settings.AUTH_USER_MODEL, verbose_name="User Access", default=" ")

此模型以表格形式保存在我的数据库中: Identity_societe

当我迁移我的模型时,会出现一个新表 Identity_societe_user

enter image description here

enter image description here

此表为Societe

的一个或多个用户提供societe = get_object_or_404(Societe, pk=id, user=request.user)页面的访问权限

我的问题是:我没有克服从这个表中获取对象: Identity_societe_user 。 我尝试了很多东西:Societe_userSociete_UserSociete.user,......但到目前为止还没有。

编辑:

我更新了一些内容:

在我的model中,我有:user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="User Access", default=" ")

在我的view中,我有societe = get_object_or_404(Societe, pk=id, user=request.user)

那我怎么写这样的东西:

societe = get_object_or_404(Societe, pk=id, user=request.user and user.username=="Admin")

为了允许来自型号Societe的user_id中具有ForeignKey的管理员用户和用户?

1 个答案:

答案 0 :(得分:1)

我不太了解你的问题但是,在你看来,你可以添加一个if语句,如

if request.user.username == 'Admin': 
    ....
    return #all the societe page
else:
    societe = get_object_or_404(Societe, pk=id, user=request.user)

或者

if request.user.is_superuser: 
    ....
    return #all the societe page
else:
    societe = get_object_or_404(Societe, pk=id, user=request.user)
相关问题