Seite 1 von 1

Django: M2M zu site...

Verfasst: Donnerstag 19. November 2009, 09:25
von jens
Ich hab viele models die ein M2M zu sites haben. Also sowas:

Code: Alles auswählen

    sites = models.ManyToManyField(Site, default=[settings.SITE_ID])
    on_site = CurrentSiteManager('sites')
Nun setzte ich zwar mit default die Site ID, aber das scheint nicht immer zu funktionieren. Denn es haben manche Einträge dennoch keine einzige site.

Dafür hab ich ein work-a-round des ungefähr so aussieht:

Code: Alles auswählen

    def save(self, *args, **kwargs):
        if self.pk == None:
            super(AutoSiteM2M, self).save(*args, **kwargs)

        if self.sites.count() == 0:
            site = Site.objects.get_current()
            self.sites.add(site)

        super(AutoSiteM2M, self).save(*args, **kwargs)
Die Frage ist jedoch, warum reicht default=[settings.SITE_ID] nicht???

Re: Django: M2M zu site...

Verfasst: Dienstag 25. Mai 2010, 14:53
von jens
Gerade wieder auf den Code Teil gestoßen... Keiner eine Idee dazu?

Der work-a-round hat nämlich Nachteile, wenn man mit force_insert nutzt.