【问题标题】:Python Django: Filtering data based on custom user model with Foreign KeyPython Django:使用外键根据自定义用户模型过滤数据
【发布时间】:2020-10-21 09:52:27
【问题描述】:

我正在尝试根据自定义用户模型过滤数据集,并且在处理数据时遇到了一些困难。 基本上,我有一个注册表单,让用户选择他们关联的公司。因此,我创建了一个自定义用户模型,其中包含与公司表的外键关联。

现在,我正在尝试查询第二个数据集,因此当用户登录时,应用程序会查找用户公司关联并过滤数据以仅显示与用户选择的公司相关联的结果。

关于如何做到这一点的任何建议?

我的用户模型如下:

class Account(AbstractBaseUser):
    email = models.EmailField(verbose_name="email", max_length=60, unique=True)
    username = models.CharField(max_length=30, unique=True)
    is_admin = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True, blank=True)

我要查询的表具有以下模型:

class Order(models.Model):
    customer = models.ForeignKey(Customer, on_delete= models.SET_NULL, null=True)
    product = models.ForeignKey(Product, on_delete= models.SET_NULL, null=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True, blank=True)
    requestorname = models.CharField(max_length=100, null=True)
    requestorage = models.CharField(max_length=2,null=True, blank=True)
    child_id = models.ForeignKey(ChildID, on_delete=models.SET_NULL, null=True, blank=True)
    comments = models.CharField(max_length=100,null=True, blank=True) 
    requestdate_create = models.DateTimeField(auto_now_add=True)

请注意,这两个表都使用外键关联到客户表,所以我希望用户只看到与他/她所属公司关联的订单。

感谢任何有助于编写视图的说明。谢谢

【问题讨论】:

    标签: python django django-models django-users


    【解决方案1】:

    所以我能够解决我自己的问题。我不得不将请求作为参数传递。将其发布在这里,以便有相同问题的人可以找到答案。视图是这样的。

    def externalrequest(request):
        args = request.user.customer_id
        external = Order.objects.filter(customer=args)
        context = {'external':external}
        return render(request, 'accounts/external.html', context)
    

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2011-08-06
      • 2021-06-06
      • 2012-06-22
      • 2018-02-03
      • 2015-04-13
      相关资源
      最近更新 更多