Django: M2M zu site...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten