【发布时间】:2018-08-22 06:58:51
【问题描述】:
“列'email_id'不能为空”这是我在用户登录时尝试填写表单时遇到的错误,只有登录用户才能访问表单以更新他们的日常工作。 这是模型:
class User(AbstractBaseUser):
sys_id = models.AutoField(primary_key=True, blank=True)
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
first_name = models.CharField(max_length=50,blank=True,null=True)
last_name = models.CharField(max_length=50,blank=True,null=True)
address = models.TextField(max_length=300,blank=True,null=True)
DOB = models.DateField('Date of Birth', blank=True, null=True)
DOJ = models.DateTimeField(auto_now=True)
active = models.BooleanField(default=True)
staff = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
class services(models.Model):
taskid = models.AutoField(primary_key=True, blank=True)
client = models.CharField(max_length=50,blank=True,null=True)
project = models.CharField(max_length=50,blank=True,null=True)
taskTime = models.DateTimeField('Task Time', blank=True, null=True)
hours = models.TimeField(blank=True, null=True)
minutes = models.TimeField(blank=True, null=True)
Description = models.TextField(max_length=300,blank=True,null=True)
email = models.OneToOneField(User, on_delete=models.CASCADE)
这是表格:
class ServiceForm(forms.ModelForm):
class Meta:
model = services
fields = ('client','project','taskTime','hours','minutes','Description')
这是视图:
@login_required
def service(request):
if request.method == 'POST':
user_form = ServiceForm(data=request.POST)
if user_form.is_valid():
user_form.email = request.user.email
user_form.save()
else:
print(user_form.errors)
else:
user_form = ServiceForm()
return render(request, 'service.html', {
'user_form':user_form})
我的主要问题是用户登录并尝试创建服务或他的工作详细信息用户 ID 应该自动分配给服务模型。请帮我解决这个问题。
我的问题是,当我创建任务时,它的用户名作为电子邮件,当我创建任务时它应该自动分配给它,因为它没有像提到的那样重复它在创建第一个表单时分配用户名很容易但我的问题是我正在创建另一个用户登录时的表单,默认情况下应将用户 ID 分配给此表单。
【问题讨论】:
-
你应该用
user_form.instance.email = request.user.email修补email。 -
另外,您已将
email声明为OneToOneField到User,但您尝试将其值设置为user.email。 -
@WillemVanOnsem 我在使用“'sai@gmail.com'”时收到此错误:“services.email”必须是“用户”实例。
标签: django python-3.x django-models django-views