example - django generic foreign key
¿Cómo puedo restringir GenericForeignKey de Django a una lista de modelos? (1)
Por ejemplo, sus aplicaciones son aplicación y aplicación2 y hay modelos A, B en la aplicación y hay modelos C, D en la aplicación2. solo quiere ver la aplicación.A y la aplicación.B y la aplicación2.C
from django.db import models
class TaggedItem(models.Model):
tag = models.SlugField()
limit = models.Q(app_label = ''app'', model = ''a'') | models.Q(app_label = ''app'', model = ''b'') | models.Q(app_label = ''app2'', model = ''c'')
content_type = models.ForeignKey(ContentType, limit_choices_to = limit)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey(''content_type'', ''object_id'')
use limit_choices_to en ForeignKey.
revisa los documentos de django para obtener más información y objetos Q, app_label. necesita escribir la etiqueta_aplicación adecuada y el modelo. Esto es solo un fragmento de código
plus: creo que escribes la etiqueta incorrecta de la aplicación. Esto puede ayudarte.
from django.contrib.contenttypes.models import ContentType
for c in ContentType.objects.all():
print(c.app_label, c.model)
¿Hay alguna forma de decirle a django que un modelo que tenga un tipo de contenido GenericForeignKey solo puede apuntar a modelos de una lista predefinida? Por ejemplo, tengo 4 modelos: A, B, C, D y un modelo X que contiene un GenericForeignKey. ¿Puedo decirle a X que solo A y B están permitidos para GenericForeignKey?