diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 187616b17e979884045e7102fb03c87215cab31a..29406fd97ec63da451454724b93a77d7496638f6 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -11,7 +11,7 @@
         "@navikt/fnrvalidator": "^1.1.4",
         "@testing-library/jest-dom": "^5.14.1",
         "@testing-library/react": "^11.2.7",
-        "@testing-library/user-event": "^12.8.3",
+        "@testing-library/user-event": "^13.2.1",
         "@types/jest": "^26.0.24",
         "@types/node": "^12.20.24",
         "@types/react": "^17.0.20",
@@ -3073,6 +3073,159 @@
         "url": "https://github.com/sponsors/gregberge"
       }
     },
+    "node_modules/@testing-library/dom": {
+      "version": "8.6.0",
+      "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.6.0.tgz",
+      "integrity": "sha512-EDBMEWK8IVpNF7B7C1knb0lLB4Si9RWte/YTEi6CqmqUK5CYCoecwOOG9pEijU/H6s3u0drUxH5sKT07FCgFIg==",
+      "peer": true,
+      "dependencies": {
+        "@babel/code-frame": "^7.10.4",
+        "@babel/runtime": "^7.12.5",
+        "@types/aria-query": "^4.2.0",
+        "aria-query": "^4.2.2",
+        "chalk": "^4.1.0",
+        "dom-accessibility-api": "^0.5.6",
+        "lz-string": "^1.4.4",
+        "pretty-format": "^27.0.2"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/@babel/runtime": {
+      "version": "7.15.4",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
+      "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
+      "peer": true,
+      "dependencies": {
+        "regenerator-runtime": "^0.13.4"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/@jest/types": {
+      "version": "27.1.1",
+      "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz",
+      "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==",
+      "peer": true,
+      "dependencies": {
+        "@types/istanbul-lib-coverage": "^2.0.0",
+        "@types/istanbul-reports": "^3.0.0",
+        "@types/node": "*",
+        "@types/yargs": "^16.0.0",
+        "chalk": "^4.0.0"
+      },
+      "engines": {
+        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/@types/yargs": {
+      "version": "16.0.4",
+      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
+      "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+      "peer": true,
+      "dependencies": {
+        "@types/yargs-parser": "*"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "peer": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "peer": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "peer": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "peer": true
+    },
+    "node_modules/@testing-library/dom/node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "peer": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/pretty-format": {
+      "version": "27.2.0",
+      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz",
+      "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==",
+      "peer": true,
+      "dependencies": {
+        "@jest/types": "^27.1.1",
+        "ansi-regex": "^5.0.0",
+        "ansi-styles": "^5.0.0",
+        "react-is": "^17.0.1"
+      },
+      "engines": {
+        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/pretty-format/node_modules/ansi-styles": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+      "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+      "peer": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/@testing-library/dom/node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "peer": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/@testing-library/jest-dom": {
       "version": "5.14.1",
       "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz",
@@ -3292,9 +3445,9 @@
       }
     },
     "node_modules/@testing-library/user-event": {
-      "version": "12.8.3",
-      "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz",
-      "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==",
+      "version": "13.2.1",
+      "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.2.1.tgz",
+      "integrity": "sha512-cczlgVl+krjOb3j1625usarNEibI0IFRJrSWX9UsJ1HKYFgCQv9Nb7QAipUDXl3Xdz8NDTsiS78eAkPSxlzTlw==",
       "dependencies": {
         "@babel/runtime": "^7.12.5"
       },
@@ -24103,6 +24256,124 @@
         "loader-utils": "^2.0.0"
       }
     },
+    "@testing-library/dom": {
+      "version": "8.6.0",
+      "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.6.0.tgz",
+      "integrity": "sha512-EDBMEWK8IVpNF7B7C1knb0lLB4Si9RWte/YTEi6CqmqUK5CYCoecwOOG9pEijU/H6s3u0drUxH5sKT07FCgFIg==",
+      "peer": true,
+      "requires": {
+        "@babel/code-frame": "^7.10.4",
+        "@babel/runtime": "^7.12.5",
+        "@types/aria-query": "^4.2.0",
+        "aria-query": "^4.2.2",
+        "chalk": "^4.1.0",
+        "dom-accessibility-api": "^0.5.6",
+        "lz-string": "^1.4.4",
+        "pretty-format": "^27.0.2"
+      },
+      "dependencies": {
+        "@babel/runtime": {
+          "version": "7.15.4",
+          "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
+          "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
+          "peer": true,
+          "requires": {
+            "regenerator-runtime": "^0.13.4"
+          }
+        },
+        "@jest/types": {
+          "version": "27.1.1",
+          "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.1.1.tgz",
+          "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==",
+          "peer": true,
+          "requires": {
+            "@types/istanbul-lib-coverage": "^2.0.0",
+            "@types/istanbul-reports": "^3.0.0",
+            "@types/node": "*",
+            "@types/yargs": "^16.0.0",
+            "chalk": "^4.0.0"
+          }
+        },
+        "@types/yargs": {
+          "version": "16.0.4",
+          "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
+          "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+          "peer": true,
+          "requires": {
+            "@types/yargs-parser": "*"
+          }
+        },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "peer": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "peer": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "peer": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "peer": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "peer": true
+        },
+        "pretty-format": {
+          "version": "27.2.0",
+          "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.2.0.tgz",
+          "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==",
+          "peer": true,
+          "requires": {
+            "@jest/types": "^27.1.1",
+            "ansi-regex": "^5.0.0",
+            "ansi-styles": "^5.0.0",
+            "react-is": "^17.0.1"
+          },
+          "dependencies": {
+            "ansi-styles": {
+              "version": "5.2.0",
+              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+              "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+              "peer": true
+            }
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "peer": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "@testing-library/jest-dom": {
       "version": "5.14.1",
       "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz",
@@ -24266,9 +24537,9 @@
       }
     },
     "@testing-library/user-event": {
-      "version": "12.8.3",
-      "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz",
-      "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==",
+      "version": "13.2.1",
+      "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.2.1.tgz",
+      "integrity": "sha512-cczlgVl+krjOb3j1625usarNEibI0IFRJrSWX9UsJ1HKYFgCQv9Nb7QAipUDXl3Xdz8NDTsiS78eAkPSxlzTlw==",
       "requires": {
         "@babel/runtime": "^7.12.5"
       },
diff --git a/frontend/package.json b/frontend/package.json
index e4753e74dffc366db42b2344c3d431cb553ad185..53dfa6f17ce3fa29f11e3b06d554f9ac7ecc47bb 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -6,7 +6,7 @@
     "@navikt/fnrvalidator": "^1.1.4",
     "@testing-library/jest-dom": "^5.14.1",
     "@testing-library/react": "^11.2.7",
-    "@testing-library/user-event": "^12.8.3",
+    "@testing-library/user-event": "^13.2.1",
     "@types/jest": "^26.0.24",
     "@types/node": "^12.20.24",
     "@types/react": "^17.0.20",
diff --git a/frontend/src/routes/register/index.test.tsx b/frontend/src/routes/register/index.test.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..d755926653b553d1783c4d8268d5f03eb6dc5ddd
--- /dev/null
+++ b/frontend/src/routes/register/index.test.tsx
@@ -0,0 +1,47 @@
+import React from 'react'
+import { render, waitFor, screen } from '@testing-library/react'
+import i18n from 'i18next'
+import { ThemeProvider } from 'styled-components/macro'
+import { initReactI18next } from 'react-i18next'
+import userEvent from '@testing-library/user-event'
+import Register from './index'
+import mainTheme from '../../themes/main'
+
+
+i18n
+  .use(initReactI18next)
+  .init({
+    lng: 'en',
+    fallbackLng: 'en',
+
+    // Have a common namespace used around the full app
+    ns: ['translations'],
+    defaultNS: 'translations',
+
+    debug: false,
+
+    resources: { en: { translations: {} } },
+  })
+
+test('Validation message showing if last name is missing', async () => {
+  render(
+    <ThemeProvider theme={mainTheme}>
+      <Register />
+    </ThemeProvider>)
+
+  const firstNamePlaceholder = i18n.t('common:firstName').toString()
+  const firstNameComponent = screen.getByPlaceholderText(firstNamePlaceholder)
+  expect(firstNameComponent).toBeInTheDocument()
+
+  userEvent.type(firstNameComponent, 'Test')
+
+  // Try to submit the form and check that the validation message is showing
+  const submitButton = screen.getByRole('button')
+  userEvent.click(submitButton)
+
+  const validationLastName = i18n.t('common:validation.lastNameRequired').toString()
+  await waitFor(() => screen.getByText(validationLastName))
+
+  const validationMessage = screen.getByText(validationLastName)
+  expect(validationMessage).toBeInTheDocument()
+})
\ No newline at end of file
diff --git a/frontend/src/routes/register/index.tsx b/frontend/src/routes/register/index.tsx
index 113a13dd488f88b9062d94c351fede75a9fdf0ca..fea26a904e186cf4a20d86771e74f610f6e58043 100644
--- a/frontend/src/routes/register/index.tsx
+++ b/frontend/src/routes/register/index.tsx
@@ -55,7 +55,9 @@ export default function Register() {
           placeholder={t('common:firstName')}
         />
         <StyledInput
-          {...register(`last_name`)}
+          {...register(`last_name`, {
+            required: t('common:validation.lastNameRequired').toString()
+          })}
           placeholder={t('common:lastName')}
         />
         <StyledInput
@@ -83,7 +85,6 @@ export default function Register() {
         <Button as="button" type="submit">
           Submit
         </Button>
-
       </form>
     </Page>
   )
diff --git a/greg/api/serializers/person.py b/greg/api/serializers/person.py
index e5f52711164793199d3f755ddc917972e1417332..d1e63341ddfb7cf8cdc471042369589a9bcfe17c 100644
--- a/greg/api/serializers/person.py
+++ b/greg/api/serializers/person.py
@@ -15,8 +15,8 @@ class RoleSerializer(serializers.ModelSerializer):
             "id",
             "start_date",
             "end_date",
-            "registered_by",
-            "unit",
+            "sponsor_id",
+            "orgunit_id",
             "created",
             "updated",
             "type",
diff --git a/greg/api/views/sponsor.py b/greg/api/views/sponsor.py
index 6e149fea441514b7d3a58aa2928da00e6d53e080..5b4ac38b2832873d558cf78135db2125a994b3f4 100644
--- a/greg/api/views/sponsor.py
+++ b/greg/api/views/sponsor.py
@@ -39,5 +39,5 @@ class SponsorGuestsViewSet(mixins.ListModelMixin, GenericViewSet):
         if not self.kwargs:
             return qs.none()
         sponsor_id = self.kwargs["sponsor_id"]
-        qs = qs.filter(roles__registered_by=sponsor_id).order_by("id")
+        qs = qs.filter(roles__sponsor_id=sponsor_id).order_by("id")
         return qs
diff --git a/greg/migrations/0006_column_names.py b/greg/migrations/0006_column_names.py
new file mode 100644
index 0000000000000000000000000000000000000000..24638a40ee97a6572f522f602b9716e527bbbd8e
--- /dev/null
+++ b/greg/migrations/0006_column_names.py
@@ -0,0 +1,31 @@
+# Generated by Django 3.2.7 on 2021-09-23 08:42
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('greg', '0005_person_user'),
+    ]
+
+    operations = [
+        migrations.RemoveConstraint(
+            model_name='role',
+            name='person_role_type_unique',
+        ),
+        migrations.RenameField(
+            model_name='role',
+            old_name='unit',
+            new_name='orgunit_id',
+        ),
+        migrations.RenameField(
+            model_name='role',
+            old_name='registered_by',
+            new_name='sponsor_id',
+        ),
+        migrations.AddConstraint(
+            model_name='role',
+            constraint=models.UniqueConstraint(fields=('person_id', 'type_id', 'orgunit_id', 'start_date', 'end_date'), name='person_role_type_unique'),
+        ),
+    ]
diff --git a/greg/models.py b/greg/models.py
index dd575a825db7585e07b4eebd77375916af7680dc..363cb2cd5e17b3e2d3bc2a28e01c95187418c99a 100644
--- a/greg/models.py
+++ b/greg/models.py
@@ -166,7 +166,7 @@ class Role(BaseModel):
     type = models.ForeignKey(
         "RoleType", on_delete=models.PROTECT, related_name="persons"
     )
-    unit = models.ForeignKey(
+    orgunit_id = models.ForeignKey(
         "OrganizationalUnit", on_delete=models.PROTECT, related_name="unit_person_role"
     )
     # The start date can be null for people that are already
@@ -176,14 +176,14 @@ class Role(BaseModel):
     contact_person_unit = models.TextField(blank=True)
     comments = models.TextField(blank=True)
     available_in_search = models.BooleanField(default=False)
-    registered_by = models.ForeignKey(
+    sponsor_id = models.ForeignKey(
         "Sponsor", on_delete=models.PROTECT, related_name="sponsor_role"
     )
 
     class Meta:
         constraints = [
             models.UniqueConstraint(
-                fields=["person_id", "type_id", "unit_id", "start_date", "end_date"],
+                fields=["person_id", "type_id", "orgunit_id", "start_date", "end_date"],
                 name="person_role_type_unique",
             )
         ]
diff --git a/greg/tests/api/test_person.py b/greg/tests/api/test_person.py
index 2a8fe2516c32f35786bb75568fdbcab81022407c..a1268c1e04d318f869d85cd000b5393601bfe6c4 100644
--- a/greg/tests/api/test_person.py
+++ b/greg/tests/api/test_person.py
@@ -50,8 +50,8 @@ def role_data_guest(
         "type": "Test Guest",
         "start_date": "2021-06-10",
         "end_date": "2021-08-10",
-        "registered_by": sponsor_bar.id,
-        "unit": unit_foo.id,
+        "sponsor_id": sponsor_bar.id,
+        "orgunit_id": unit_foo.id,
     }
 
 
@@ -126,8 +126,8 @@ def test_add_role(
         "type": "visiting_professor",
         "start_date": "2021-06-10",
         "end_date": "2021-08-10",
-        "registered_by": "1",
-        "unit": "1",
+        "sponsor_id": "1",
+        "orgunit_id": "1",
     }
     response = client.post(url, role_data)
 
@@ -420,8 +420,8 @@ def test_add_duplicate_role_fails(client, person_foo: Person, role_person_foo):
         "type": role_person_foo.type.identifier,
         "start_date": role_person_foo.start_date,
         "end_date": role_person_foo.end_date,
-        "registered_by": role_person_foo.registered_by.id,
-        "unit": role_person_foo.unit_id,
+        "sponsor_id": role_person_foo.sponsor_id.id,
+        "orgunit_id": role_person_foo.unit_id,
     }
     response = client.post(url, role_data)
     # If the role cannot be create the return code is 400
@@ -448,8 +448,8 @@ def test_filter_active_includes_person_with_active_role(
         person=person_foo,
         type=role_type_test_guest,
         end_date=date_today + datetime.timedelta(days=1),
-        registered_by=sponsor_guy,
-        unit=unit_foo,
+        sponsor_id=sponsor_guy,
+        orgunit_id=unit_foo,
     )
 
     url = reverse("v1:person-list")
@@ -486,8 +486,8 @@ def test_filter_active_value_false(
         person=person_foo,
         type=role_type_test_guest,
         end_date=date_today - datetime.timedelta(days=1),
-        registered_by=sponsor_guy,
-        unit=unit_foo,
+        sponsor_id=sponsor_guy,
+        orgunit_id=unit_foo,
     )
 
     url = reverse("v1:person-list")
diff --git a/greg/tests/conftest.py b/greg/tests/conftest.py
index 2d3fdfb099e3e3c9da3776edc605d8084bbd3d2a..71a08c36919fc2281a99ec0f4050c5124950469a 100644
--- a/greg/tests/conftest.py
+++ b/greg/tests/conftest.py
@@ -123,8 +123,8 @@ def role_person_foo(
         type=role_type_test_guest,
         start_date="2021-08-02",
         end_date="2021-08-06",
-        registered_by=sponsor_guy,
-        unit=unit_foo,
+        sponsor_id=sponsor_guy,
+        orgunit_id=unit_foo,
     )
     return Role.objects.get(id=role.id)
 
diff --git a/greg/tests/models/test_person.py b/greg/tests/models/test_person.py
index e193a9b4276e41cb4a23335c0a0496ef8960e2b8..44d451b42e1b1e0efb6e15b35335be2a9459b69b 100644
--- a/greg/tests/models/test_person.py
+++ b/greg/tests/models/test_person.py
@@ -94,14 +94,14 @@ def test_add_multiple_roles_to_person(
     role_with(
         person=person,
         type=role_type_foo,
-        unit=ou,
-        registered_by=Sponsor.objects.create(feide_id="foosponsor@uio.no"),
+        orgunit_id=ou,
+        sponsor_id=Sponsor.objects.create(feide_id="foosponsor@uio.no"),
     )
     role_with(
         person=person,
         type=role_type_bar,
-        unit=ou,
-        registered_by=Sponsor.objects.create(feide_id="barsponsor@uio.no"),
+        orgunit_id=ou,
+        sponsor_id=Sponsor.objects.create(feide_id="barsponsor@uio.no"),
     )
     assert person.roles.count() == 2
 
diff --git a/greg/tests/populate_database.py b/greg/tests/populate_database.py
index 605a67033c1de70aef9f5cb24f370e86c574761a..c86d746b3e2419c18283c47b6295119c254e973e 100644
--- a/greg/tests/populate_database.py
+++ b/greg/tests/populate_database.py
@@ -154,7 +154,7 @@ class DatabasePopulation:
                     ),
                     contact_person_unit=self.faker.name(),
                     available_in_search=self.random.random() > 0.5,
-                    registered_by=random.choice(self.sponsors),
+                    sponsor_id=random.choice(self.sponsors),
                 )
                 person_role_count += 1
             except IntegrityError:
diff --git a/greg/tests/test_expire_role.py b/greg/tests/test_expire_role.py
index df240644cc9b1970e44a8b49560f6b21b816d228..77ca940cf723736b657488e7975c003d7d25e307 100644
--- a/greg/tests/test_expire_role.py
+++ b/greg/tests/test_expire_role.py
@@ -33,12 +33,12 @@ def role(
     return Role.objects.create(
         person=person,
         type=role_type_bar,
-        unit=unit_foo,
+        orgunit_id=unit_foo,
         start_date="2020-03-05",
         end_date=datetime.today() + timedelta(days=30),
         contact_person_unit="Contact Person",
         available_in_search=True,
-        registered_by=sponsor_guy,
+        sponsor_id=sponsor_guy,
     )
 
 
diff --git a/greg/tests/test_notifications.py b/greg/tests/test_notifications.py
index f86dbc02383692f22adbe16d9bb68a863321c93d..7fcbb4494aed29bc9d35d7404676d37dec89dfb0 100644
--- a/greg/tests/test_notifications.py
+++ b/greg/tests/test_notifications.py
@@ -73,8 +73,8 @@ def test_role_add_notification(
         type=role_type_foo,
         start_date="2021-05-06",
         end_date="2021-10-20",
-        unit=org_unit_bar,
-        registered_by=sponsor,
+        orgunit_id=org_unit_bar,
+        sponsor_id=sponsor,
     )
     notifications = Notification.objects.filter(object_type="Role")
     assert len(notifications) == 1
@@ -96,8 +96,8 @@ def test_role_update_notification(
         type=role_type_foo,
         start_date="2021-05-06",
         end_date="2021-10-20",
-        unit=org_unit_bar,
-        registered_by=sponsor,
+        orgunit_id=org_unit_bar,
+        sponsor_id=sponsor,
     )
     assert len(person.roles.all()) == 1
     person_role = person.roles.all()[0]
@@ -123,8 +123,8 @@ def test_role_delete_notification(
         type=role_type_foo,
         start_date="2021-05-06",
         end_date="2021-10-20",
-        unit=org_unit_bar,
-        registered_by=sponsor,
+        orgunit_id=org_unit_bar,
+        sponsor_id=sponsor,
     )
     assert len(person.roles.all()) == 1
     person_role = person.roles.all()[0]