generic foreign example django django-models django-forms django-admin django-contenttypes

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?