ValueError – Cannot assign: must be an instance

You don’t need to pass the department id, the instance itself is enough.

The following should work just fine:

new_team = Team(
    nickname = team_name,
    employee_id = employee_id,
    department_id = Department.objects.get(password = password,
                                           department_name = department_name))

Just a note: don’t ever name your foreign fields something_id.

That something is enough. Django is meant to make things easy from the user’s perspective and the _id suffix means you’re thinking of the database layer. In fact, if you named your column department, django will automatically create department_id column in the database for you.

The way things are, you’re making Django create department_id_id which is rather silly.

Leave a Comment