【发布时间】:2019-06-13 18:51:39
【问题描述】:
所以我正在尝试为模型创建一个表单,该表单指定了我添加到用户的额外字段。
forms.py
from django import forms
from .models import Profile
class ProfileForm(forms.ModelForm):
class meta:
model = Profile
fields = [
'company',
'birth_date',
]
模型.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
company = models.CharField(max_length=500, blank=True)
address = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
views.py
from django.shortcuts import render
from .forms import ProfileForm
from .models import Profile
def profile_settings_view(request):
form = ProfileForm(request.POST or None)
if form.is_valid():
form.save()
context = {
'form' : form
}
return render(request, 'userinfo/settings.html', context)
所以我的错误输出是:
ValueError 在 /settings/ ModelForm 没有指定模型类。
但这怎么可能,我用了model = Profile为什么会出现这个错误呢?
【问题讨论】:
-
我认为应该是
Meta而不是meta。
标签: django django-forms