[英]Django 'Column 'user_id' cannot be null'
Please help me resolve this issue. 请帮助我解决此问题。 I'm starting to learn Django.
我开始学习Django。 Please tell me where the error.
请告诉我错误在哪里。 I was looking for similar problems, but I did not find a solution.
我一直在寻找类似的问题,但没有找到解决方案。 Thanks
谢谢
views 意见
def register(request):
args = {}
args['forms'] = SignUpForm()
args['form1'] = ImagefieldForm()
if request.POST:
newuser_form = SignUpForm(request.POST)
image_field_form = ImagefieldForm(request.POST, request.FILES)
if newuser_form.is_valid() and image_field_form.is_valid():
user = newuser_form.save(commit=False)
user.is_active = False
user.save()
print ('User saved')
image_field_form.save()
current_site = get_current_site(request)
mail_subject = 'Welcome to site'
message = render_to_string('login_app/please_active_email.html', {
'user': user,
'domain': current_site.domain,
'uid': urlsafe_base64_encode(force_bytes(user.pk)).decode(),
'token': account_activation_token.make_token(user),
})
to_email = newuser_form.cleaned_data.get('username')
email = EmailMessage(
mail_subject, message, to=[to_email])
email.send()
return HttpResponse('Please check your email')
else:
args['forms'] = newuser_form
return render(request, 'login_app/registration.html', args)
forms 形式
class ImagefieldForm(forms.ModelForm):
avatar = forms.ImageField(required=True)
class Meta:
model = Profile
fields = ('avatar', )
models 楷模
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to='images/users', blank=False)
This is the stack trace from the problem. 这是问题的堆栈跟踪。 You can see where the problem occurs.
您可以查看出现问题的位置。
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/django/base.py", line 176, in _execute_wrapper
return method(query, args)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/cursor.py", line 561, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/connection.py", line 525, in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/connection.py", line 427, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.IntegrityError: 1048 (23000): Column 'user_id' cannot be null
From https://ideone.com/oWnIqH . 来自https://ideone.com/oWnIqH
You're not setting a user to the ImageFieldForm - which is a ModelForm
that has Profile
as model in its Meta
class. 您没有将用户设置为
ModelForm
这是一个ModelForm
,在其Meta
类中具有Profile
作为模型。
image_field_form.save(commit=False)
image_field_form.user = user
image_field_form.save()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.