我想在我的网页上制作促销系统。
我想要的选择很少:
如何制作模型来实现它? 我想在Promotion模型中使用可以为空的外键,但是如何在Product模型中使用相关对象,因为我用外键等同于客户端外键并且所有外键都是NULL?
或者也许可以将一些经理添加到产品型号中,我会根据客户的ID来搜索促销价格?
答案 0 :(得分:2)
你的可设计领域的设计非常好。你只需要一些薄的包裹物。
假设您要为当前用户选择所有促销活动。也就是说,用户选择的促销或没有指定用户的促销。使用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)
Product
字段也是如此。