Python 如果值不是以形式给出的,那么它是否默认不存储空值?
我在django中创建了一个表单。我需要将imagefield设置为可选,因此我给出了required=False。在我的模型中,我给出了default=None。我的问题是,如果用户没有设置配置文件图片,默认值None没有存储在数据库中 forms.pyPython 如果值不是以形式给出的,那么它是否默认不存储空值?,python,django,Python,Django,我在django中创建了一个表单。我需要将imagefield设置为可选,因此我给出了required=False。在我的模型中,我给出了default=None。我的问题是,如果用户没有设置配置文件图片,默认值None没有存储在数据库中 forms.py class Register(forms.Form): Email = forms.EmailField(widget=forms.TextInput(attrs=
class Register(forms.Form):
Email = forms.EmailField(widget=forms.TextInput(attrs=
{"class":"inputvalues"}))
Username = forms.CharField(widget=forms.TextInput(attrs=
{"class":"inputvalues"}))
Password = forms.CharField(widget=forms.PasswordInput(attrs=
({"class":"inputvalues"})))
Firstname = forms.CharField(widget=forms.TextInput(attrs=
{"class":"inputvalues"}),max_length=30)
Lastname = forms.CharField(widget=forms.TextInput(attrs=
{"class":"inputvalues"}),max_length=40)
Confirm_Password = forms.CharField(widget=forms.PasswordInput(attrs=
({"class":"inputvalues"})))
picture = forms.ImageField(required = False)
models.py
class Profile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
image = models.ImageField(upload_to='media',default=None)
views.py
def register(request):
if request.method == "POST":
form = Register(request.POST,request.FILES)
pro=Profile()
if form.is_valid():
email = form.cleaned_data['Email']
User_name=form.cleaned_data['Username']
Password=form.cleaned_data['Password']
firstname=form.cleaned_data['Firstname']
lastname=form.cleaned_data['Lastname']
user=User.objects.create_user(username=User_name,
password=Password,email=email,
first_name=firstname,last_name=lastname)
if form.cleaned_data['picture']:
pro.image = request.FILES['picture']
pro.user = user
pro.save()
redirect('/')
未提供图片时不保存pro。
尝试将代码更改为:
if form.cleaned_data['picture']:
pro.image = request.FILES['picture']
pro.user = user
pro.save()
默认值None未存储在数据库中您所说的未存储是什么意思?你在这个领域还有其他的东西吗?是否收到错误消息?无表示字段中没有存储值。如果您知道null和none之间的区别,那么更容易理解。如果要在db字段上设置默认值None,请使用default=NoneI GIVED default=None。这只是在用户模型中创建一个用户。与该用户无关的任何内容都存储在配置文件模型中。它甚至没有给出错误消息。您需要在配置文件模型上设置default=None