ezra
ezra

Reputation: 23

Django 2.1 TypeError: __init__() got an unexpected keyword argument 'on_delete'

My code:

class UserProfile(models.Model):
    user      = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='profile')
    following = models.ManyToManyField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='followed_by')

    def __str__(self):
        return str(self.following.all().count())

My error:

TypeError: __init__() got an unexpected keyword argument 'on_delete'

Any ideas?

Upvotes: 2

Views: 2454

Answers (1)

Ralf
Ralf

Reputation: 16505

Looking at the docs, it seems that the field ManyToManyField does not have an argument called on_delete.

Remove that argument for the field following:

...
user = models.OneToOneField(
    settings.AUTH_USER_MODEL,
    on_delete=models.CASCADE,
    related_name='profile')
following = models.ManyToManyField(
    settings.AUTH_USER_MODEL,
    related_name='followed_by')
...

Upvotes: 2

Related Questions