Default ForeignKey

Created on Oct. 17, 2012, 6:06 p.m. by Hevok & updated by Hevok on May 2, 2013, 5:24 p.m.

There are at least three different ways to implement a default for a ForeignKey field.

  1. Overwrite the init: ::

    class Link(models.Model): def init(self, *args, kwargs): super(Link, self).__init__(*args, kwargs) self.fields['site'].initial = Site.objects.get(domain='denigma.de')

  2. Provide a helper function for the model definition: ::

    def get_site(): return Site.objects.get(domain='denigma.de')

    class Link(models.Model): url = models.UrlField() site = models.ForeignKey(Site, default=get_site)

  3. Simple set the default pk for the field: ::

    class Link(models.Model): url = models.UrlField() site = models.ForeignKey(Site, default=1)


Tags: fk, database, models
Categories: Tutorial
Parent: Web Framework

Update entry (Admin) | See changes

Comment on This Data Unit