TypeError:\uuuu init\uuuu()缺少1个必需的位置参数:“on\u delete”如何解决此问题

2024-06-28 20:53:27 发布

您现在位置:Python中文网/ 问答频道 /正文

Python 3.8.1 django版本3.0.3 当我运行这段代码时,我得到了这个错误 TypeError:\uuuu init\uuuu()缺少1个必需的位置参数:“on\u delete”

型号.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')

Tags: djangofrompyimportauthmodelssiteforms
1条回答
网友
1楼 · 发布于 2024-06-28 20:53:27

OneToOneField^{} parameter [Django-doc]添加一个值。这指定在删除目标对象(此处为User)时要执行的操作。例如,我们可以指定一个CASCADE

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

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

请阅读文档以决定要使用的触发器

相关问题 更多 >