class HasAWidgyOnlyAnotherLayout(models.Model): widgy = WidgyField( null=True, blank=True, root_choices=[AnotherLayout], site='modeltests.core_tests.widgy_config.widgy_site' )
class HasAWidgy(models.Model): widgy = WidgyField( null=True, blank=True, root_choices=[Layout], site='tests.core_tests.widgy_config.widgy_site', )
class VersionCommit(models.Model): tracker = models.ForeignKey('VersionTracker', related_name='commits') parent = models.ForeignKey('VersionCommit', null=True, on_delete=models.PROTECT) root_node = WidgyField(on_delete=models.PROTECT) author = models.ForeignKey(getattr(settings, 'AUTH_USER_MODEL', 'auth.User'), null=True, on_delete=models.SET_NULL) created_at = models.DateTimeField(auto_now_add=True) message = models.TextField(blank=True, null=True) publish_at = models.DateTimeField(default=timezone.now) class Meta: app_label = 'widgy' @property def is_published(self): return self.publish_at <= timezone.now() def __str__(self): if self.message: subject = " - '%s'" % self.message.strip().split('\n')[0] else: subject = '' date = date_format(self.created_at, 'DATETIME_FORMAT') return '#%s %s%s' % (self.id, date, subject)
class Callout(models.Model): name = models.CharField(max_length=255, verbose_name=_('name')) root_node = WidgyField(site=settings.WIDGY_MEZZANINE_SITE, null=True, on_delete=models.SET_NULL, verbose_name=_('Widgy Content'), root_choices=('CalloutBucket', )) class Meta: verbose_name = _('callout') verbose_name_plural = _('callouts') def __str__(self): return self.name
class HasAWidgyNonNull(models.Model): widgy = WidgyField( root_choices=[AnotherLayout], site='modeltests.core_tests.widgy_config.widgy_site', )
from widgy.site import WidgySite from widgy.db.fields import VersionedWidgyField, WidgyField widgy_site = WidgySite() # This emulates importing models from a site file. It must come after # widgy_site is defined, because widgy doesn't exist yet without the # site. # We have to be able to import models from the site file to use when # checking compatibility. VersionedWidgyField(site='tests.core_tests.widgy_config.widgy_site') WidgyField(site='tests.core_tests.widgy_config.widgy_site')