是否可以在表单类中获取request.user数据?我想清理一个电子邮件地址,以确保它是唯一的,但如果它是当前用户的电子邮件地址,那么它应该通过.
这是我目前拥有的创建新用户非常有用的东西,但如果我想编辑用户,我会遇到他们的电子邮件未经验证的问题,因为它已经出现了.如果我可以使用request.user.email检查它是他们的电子邮件,那么我将能够解决我的问题,但我不知道该怎么做.
class editUserForm(forms.Form):
email_address = forms.EmailField(widget=forms.TextInput(attrs={'class':'required'}))
def clean_email_address(self):
this_email = self.cleaned_data['email_address']
test = UserProfiles.objects.filter(email = this_email)
if len(test)>0:
raise ValidationError("A user with that email already exists.")
else:
return this_email
Run Code Online (Sandbox Code Playgroud) 在我的ModelForm实现中,我想根据当前用户是否是超级用户执行不同类型的验证检查.如何访问当前请求用户?
假设我有一个显示歌曲的网页。假设有公共歌曲和私人歌曲。公开歌曲是所有人都可以看到的,而私人歌曲是某个用户自己创建的、只有他自己可以看到的歌曲。所以用户应该只看到那些具有owner_id == NULL和owner_id == current_logged_in_user_id(他自己的id)的歌曲
模型:
import ....
class Song(models.Model):
name = models.CharField(max_length=100)
duration = models.IntegerField(max_length=15)
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
看法:
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from songapp.models import Song
from songapp.forms import SongInfoForm
@login_required
def song_info(request):
song = get_object_or_404(Box)
song_status = song.get_status()
form = SongInfoForm(initial={'song_list': song.song_list})
return render(request, 'songapp/song_info.html',
{'form': form, 'song': song, 'song_status': song_status})
Run Code Online (Sandbox Code Playgroud)
形式:
from django import forms
from django.forms import ModelChoiceField
from songapp.models import Song
class …Run Code Online (Sandbox Code Playgroud)