Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django相关对象和空外键_Python_Django_Model - Fatal编程技术网

Python Django相关对象和空外键

Python Django相关对象和空外键,python,django,model,Python,Django,Model,我想在我的网页上制作促销系统 我想要几个选择: 为客户提供所有产品的折扣 为客户提供其中一种产品的折扣 为所有客户提供其中一种产品的折扣 如何建立模型来实现这一点? 我曾考虑在促销模型中使用可为NULL的外键,但如何在产品模型中使用相关对象,因为我需要使用外键等于客户端外键且外键为NULL的所有促销 或者在产品模型中添加一些经理,根据客户的id搜索促销价格?您的可空字段设计非常好。你只需要用一些薄薄的包装纸就可以了 假设要为当前用户选择所有促销。即,已选择用户或未指定用户的促销。使用Djan

我想在我的网页上制作促销系统

我想要几个选择:

  • 为客户提供所有产品的折扣
  • 为客户提供其中一种产品的折扣
  • 为所有客户提供其中一种产品的折扣
如何建立模型来实现这一点? 我曾考虑在促销模型中使用可为NULL的外键,但如何在产品模型中使用相关对象,因为我需要使用外键等于客户端外键且外键为NULL的所有促销


或者在产品模型中添加一些经理,根据客户的id搜索促销价格?

您的可空字段设计非常好。你只需要用一些薄薄的包装纸就可以了

假设要为当前用户选择所有促销。即,已选择用户或未指定用户的促销。使用Django很容易做到这一点:

from django.db.models import Q

class PromotionQuerySet(models.QuerySet):
    def for_user(self, user):
        return self.filter(Q(user=user) | Q(user__isnull=True))


class Promotion(models.Model):
    user = models.ForeignKey(User, null=True)

    objects = PromotionQuerySet.as_manager()


# and later in your code, say, in the view:
active_promos = Promotion.objects.for_user(request.user)

产品
字段也是如此。

您使用可空字段的设计非常好。你只需要用一些薄薄的包装纸就可以了

假设要为当前用户选择所有促销。即,已选择用户或未指定用户的促销。使用Django很容易做到这一点:

from django.db.models import Q

class PromotionQuerySet(models.QuerySet):
    def for_user(self, user):
        return self.filter(Q(user=user) | Q(user__isnull=True))


class Promotion(models.Model):
    user = models.ForeignKey(User, null=True)

    objects = PromotionQuerySet.as_manager()


# and later in your code, say, in the view:
active_promos = Promotion.objects.for_user(request.user)

产品
领域也是如此。

请通读django基础教程,它在模型设计方面做得很好,我相信你会从那里而不是这里学到更多。请通读django基础教程,它在模型设计方面做得很好,我相信你会从那里而不是这里学到更多。