Джанго родовое отношение и limit_choices_to

В приведенном выше примере у меня есть категория модели, которая может быть двух (или более) типов. Как я могу использовать limit_to_choice в модели ContentA, чтобы использовать только тип категории "A", если между ними есть общее отношение?

# Taxonomy models

from django.db import models
from mptt.models import MPTTModel
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic


class Category(MPTTModel):
    TYPE_CHOICES = (
        ('A', 'Type A'),
        ('B', 'Type B'),
    )
    name = models.CharField(max_length=128)
    type = models.CharField(max_length=1, choices=TYPE_CHOICES)
    parent = models.ForeignKey('self', null=True, blank=True, related_name='%(class)s_parent')

    class MPTTMeta:
        parent_attr = 'parent'
        order_insertion_by = ['type', 'name', ]


class CategorizedItem(models.Model):
    category = models.ForeignKey(Category)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')


class ContentA(models.Model):
    categories = generic.GenericRelation(CategorizedItem, limit_choices_to={'category_type__exact': 'A'})
    name = models.CharField(max_length=128)

class ContentB(models.Model):
    categories = generic.GenericRelation(CategorizedItem, limit_choices_to={'category_type__exact': 'B'})
    name = models.CharField(max_length=128)

0 ответов

Другие вопросы по тегам