Пример #1
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
Пример #2
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)
Пример #3
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)
Пример #4
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)
Пример #5
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",
    )
Пример #6
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)
Пример #7
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)
Пример #8
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")))