Ошибка типа: __init __ () отсутствует 1 обязательный позиционный аргумент: 'on_delete' как я могу решить эту проблему - PullRequest
0 голосов
/ 01 марта 2020

Python 3.8.1 django версия 3.0.3, когда я запускаю этот код, я получаю эту ошибку Ошибка типа: __init __ () отсутствует 1 обязательный позиционный аргумент: 'on_delete'

Models.py

from django.db import models
from django.contrib.auth.models import User

# Create your models here.

class UserProfileInfo(models.Model):

    user = models.OneToOneField(User)

    #additional
    profile_site = models.URLField(blank = True)

    profile_pic = models.ImageField(upload_to = 'profile_pics', blank = True)

    def __str__(self):
        return self.user.username

forms.py

from django import forms
from django.contrib.auth.models import User
from basic_app.models import UserProfileInfo

class UserForm(forms.ModelForm):
    password = forms.CharField(widget = forms.PasswordInput())

    class meta():
        model = User
        fields = ('username', 'email', 'password')

class UserProfileInfo(forms.ModelForm):
    class meta():
        model = UserProfileInfo
        fields = ('profile_site', 'profile_pic')

1 Ответ

1 голос
/ 01 марта 2020

Вы добавляете значение для параметра on_delete=… [Django -doc] из OneToOneField. Это указывает, что делать, когда целевой объект, здесь User удаляется. Например, мы можем указать CASCADE:

class UserProfileInfo(models.Model):
    user = models.OneToOneField(User<b>, on_delete=models.CASCADE</b>)
    profile_site = models.URLField(blank = True)
    profile_pic = models.ImageField(upload_to='profile_pics', blank=True)

    def __str__(self):
        return self.user.username

Пожалуйста, прочитайте документацию, чтобы решить, какой триггер вы хотите использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...