在我的Django项目中,我有一个从Django外部填充的数据库,但需要Django功能以用户友好的方式显示数据库中的数据。遗留数据库结构如下:
class SomeModel(models.Model):
#some fields
group_access = models.ForeignKey(AccessGroup,on_delete=models.CASCADE()
class AccessGroup(models.Model):
group_name = models.CharField(max_length=200)
用户具有与分配给特定用户的组名有许多关系的自定义用户配置文件:
class CustomUser(models.Model):
#some values
projects = models.ManyToManyField(AccessGroup)
目前,我能够显示来自用户访问的所有组的数据,但我正在寻找的是一种创建下拉菜单的方法,以便用户可以在组之间切换,而无需在每个视图上注销或重新进入组。
发布于 2018-05-24 10:49:28
您可以尝试如下所示:
AccessGroup.objects.filter(CustomUser__pk=1)
或
CustomUser.objects.filter(AccessGroup__group_name='GropName')
https://docs.djangoproject.com/en/2.0/topics/db/examples/many_to_many/
发布于 2018-05-24 12:41:18
您可以扩展django用户模型,例如
from django.contrib.auth.models import User
class CustomUser(models.Model):
projects = models.ManyToManyField(AccessGroup)
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
custom_user = models.ForeignKey(CustomUser, unique=False)
class SomeModel(models.Model):
#some fields
group_access = models.ForeignKey(AccessGroup,on_delete=models.CASCADE()
class AccessGroup(models.Model):
group_name = models.CharField(max_length=200)
然后像下面这样将数据放到视图中
def index(request):
AccessGroup.objects.filter(user__id=persion(request.user).id)
发布于 2018-05-25 12:01:53
我假设您知道如何获得组的列表,并且正在寻找如何将此列表放入模板中。如果没有,请让我知道,我也会解释的。
如果你想把一个全局变量放到模板中,有3个主要的选择:
https://stackoverflow.com/questions/50506393
复制相似问题