Default ForeignKey

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)


Edit tutorial

Comment on This Data Unit