Example #1
0
 def __init__(self, **kwargs):
     kwargs.setdefault("related_name", "ascendants")
     kwargs.update(
         to="self",
         predicate=Q(path__startswith=L("path"), path__ne=L("path")),
     )
     super(MP_Descendants, self).__init__(**kwargs)
Example #2
0
 def __init__(self, **kwargs):
     kwargs.setdefault("related_name", "rootpath")
     kwargs.update(
         to="self",
         predicate=Q(
             tree_id=L("tree_id"),
             lft__gte=L("lft"),
             lft__lt=L("rgt"),
         ),
     )
     super(NS_Subtree, self).__init__(**kwargs)
Example #3
0
 def __init__(self, **kwargs):
     kwargs.setdefault("related_name", "ascendants")
     kwargs.update(
         to="self",
         predicate=Q(
             tree_id=L("tree_id"),
             lft__gt=L("lft"),
             lft__lt=L("rgt"),
         ),
     )
     super(NS_Descendants, self).__init__(**kwargs)
Example #4
0
class Page(BasePage):
    descendants = Relationship(
        "self",
        Q(slug__startswith=L("slug"), slug__ne=L("slug")),
        related_name="ascendants",
    )

    subtree = Relationship(
        "self", Q(slug__startswith=L("slug")), related_name="rootpath"
    )

    def __str__(self):
        return self.name
 def __init__(self, **kwargs):
     kwargs.setdefault("related_name", "rootpath")
     kwargs.update({
         "to": "self",
         "predicate": Q(path__startswith=L("path")),
     })
     super(MP_Subtree, self).__init__(**kwargs)
Example #6
0
 def predicate():
     unique_filters = filters() if callable(filters) else filters
     fk_filters = Q(
         **{
             from_field.attname: L(to_field.attname)
             for to_field, from_field in self.fk_related_fields
         })
     return fk_filters & unique_filters
Example #7
0
class ProductFilter(models.Model):
    fcolour = models.CharField(max_length=20)
    fsize = models.IntegerField()

    products = Relationship(Product,
                            Q(colour=L("fcolour"), size__gte=L("fsize")),
                            related_name="filters")

    cartitems = Relationship(
        CartItem,
        Q(product__colour=L("fcolour"), product__size__gte=L("fsize")),
        related_name="filters",
    )

    def __str__(self):
        return "ProductFilter #%d: %s size %s" % (self.pk, self.fcolour,
                                                  self.fsize)
Example #8
0
class Category(models.Model):
    code = models.TextField(unique=True)
    members = Relationship(
        Categorised, Q(category_codes__contains=L("code")), related_name="categories"
    )

    def __str__(self):
        return "Category #%d: %s" % (self.pk, self.code)
Example #9
0
 def resolve_expression(self,
                        query=None,
                        allow_joins=True,
                        reuse=None,
                        summarize=False,
                        for_save=False):
     model = query._relationship_field_query.model
     name = getattr(model._mptt_meta, self.name + "_attr")
     return L(name).resolve_expression(query, allow_joins, reuse, summarize,
                                       for_save)
Example #10
0
class CartItem(models.Model):
    product_code = models.CharField(max_length=13)
    description = models.TextField()

    product = Relationship(
        Product, Q(sku=L("product_code")), related_name="cart_items", multiple=False
    )

    def __str__(self):
        return "Cart item #%s: SKU %s" % (self.pk, self.sku)
Example #11
0
class DefaultTranslationArticle(models.Model):
    pub_date = models.DateField()
    default_lang = models.CharField(max_length=2)
    active_translation = ReverseUnique(
        "DefaultTranslationArticleTranslation", filters=filter_lang)
    default_translation = ReverseUnique(
        "DefaultTranslationArticleTranslation", filters=Q(lang=L('default_lang')))

    class Meta:
        app_label = 'reverse_unique'
Example #12
0
class LinkedNode(models.Model):
    name = models.CharField(max_length=30)
    prev_id = models.IntegerField(null=True)

    next = Relationship(
        "self",
        predicate=Q(prev_id=L("id")),
        reverse_multiple=False,
        multiple=False,
        related_name="prev",
    )
Example #13
0
class UserGenerator(models.Model):

    user = Relationship(
        User,
        Q(username=Concat(Value("generated_for_"), L("id"))),
        multiple=False,
        reverse_multiple=False,
    )

    def save(self, *args, **kwargs):
        super(UserGenerator, self).save(*args, **kwargs)
        User.objects.create(username="******" % self.id)
Example #14
0
class CategoryBase(models.Model):
    code = models.CharField(unique=True, max_length=255)
    members = Relationship(
        Categorised,
        Q(category_codes__contains=L("code")),
        related_name="categories",
    )

    class Meta:
        abstract = True

    def __str__(self):
        return "Category #%d: %s" % (self.pk, self.code)
Example #15
0
class SavedFilter(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    search_regex = models.TextField()
    chemicals = Relationship(Chemical, Q(formula__regex=L("search_regex")))