Python 如果request.user.is_匿名:-否则:工作不正常
我在DB中创建了一行,它有两种不同的情况,一种是没有用户登录,另一种是用户登录 我曾经Python 如果request.user.is_匿名:-否则:工作不正常,python,django,Python,Django,我在DB中创建了一行,它有两种不同的情况,一种是没有用户登录,另一种是用户登录 我曾经 if request.user.is_anonymous: [....] else: [....] 但是它只在第一行为true时保存到DB,这是if request.user.is\u anonymous:,但当用户登录时它从不保存到DB def add_ad_mod(request): created_otp = uuid.uuid4().hex[:6].upper() current
if request.user.is_anonymous:
[....]
else:
[....]
但是它只在第一行为true时保存到DB,这是if request.user.is\u anonymous:
,但当用户登录时它从不保存到DB
def add_ad_mod(request):
created_otp = uuid.uuid4().hex[:6].upper()
current_user = request.user
current_ip = get_client_ip(request)
selected = Temp.objects.filter(created_by_ip=current_ip).order_by('-created_at')[0]
selected_category = selected.cat
classi = Category.objects.filter(category_name__icontains="Classifieds")[0]
jobs = Category.objects.filter(category_name__icontains="Jobs")[0]
if request.user.is_anonymous:
if request.method == 'POST':
add_ad_mod_form = AddAdModForm(request.POST, request.FILES, cat=selected_category)
if add_ad_mod_form.is_valid():
model_instance = add_ad_mod_form.save(commit=False)
model_instance.category = selected_category
model_instance.post_otp = created_otp
model_instance.save()
add_ad_mod_form.save_m2m()
current_email = model_instance.email
send_mail(
'Activate your Ad on Jehlum',
'Use the code ' + created_otp + '.',
'test@jehlem.org',
[model_instance.email],
fail_silently=False,
)
request.session['created_otp'] = created_otp # set 'student_id' in the session
request.session['current_email'] = current_email # set 'student_id' in the session
return redirect('post_confirm')
else:
add_ad_mod_form = AddAdModForm(cat=selected_category)
else:
if request.method == 'POST':
add_ad_mod_form = AddAdModForm(request.POST, request.FILES, cat=selected_category)
if add_ad_mod_form.is_valid():
model_instance = add_ad_mod_form.save(commit=False)
model_instance.created_by = current_user.email
model_instance.category = selected_category
model_instance.email = current_user.email
model_instance.post_otp = 0
if request.user.is_superuser:
model_instance.is_active = True
else:
model_instance.is_active = False
model_instance.save()
add_ad_mod_form.save_m2m()
return redirect('post_success')
else:
add_ad_mod_form = AddAdModForm(cat=selected_category)
add_ad_mod_form = AddAdModForm(cat=selected_category)
context = {
'add_ad_mod_form': add_ad_mod_form,
'selected_category': selected_category,
'classi': classi,
'jobs': jobs,
}
return render(request, 'add_ad_mod.html', context)
是匿名的
是一种方法,因此必须调用:
if request.user.is_anonymous(): # note parentheses
# ...
在django模板中经常会看到没有括号的版本,渲染引擎将在其中隐式调用函数。然而,在常见的Python代码中,
user.is\u anonymous
引用的函数对象总是真实的,而不管调用该函数会返回什么。is\u anonymous
是一种方法,因此必须调用:
if request.user.is_anonymous(): # note parentheses
# ...
在django模板中经常会看到没有括号的版本,渲染引擎将在其中隐式调用函数。然而,在常见的Python代码中,
user.is\u anonymous
引用的函数对象始终是真实的,而不管调用该函数会返回什么。因为django 1.10is\u anonymous
成为bool对象,而不再是方法。在旧版本中,这是一种方法。在Django 2.0中删除
正如在报告中明确提到的那样
是匿名的:只读属性,该属性始终为False。这是区分用户和匿名用户对象的一种方法。通常,您应该更喜欢使用is\u authenticated
而不是此属性
使用is\u authenticated
if request.user.is_authenticated:
# authenticated user stuff
else:
# Anonymous user
因为django 1.10
是匿名的
成为一个bool对象,不再是一个方法。在旧版本中,这是一种方法。在Django 2.0中删除
正如在报告中明确提到的那样
是匿名的:只读属性,该属性始终为False。这是区分用户和匿名用户对象的一种方法。通常,您应该更喜欢使用is\u authenticated
而不是此属性
使用is\u authenticated
if request.user.is_authenticated:
# authenticated user stuff
else:
# Anonymous user
您是否检查了is
add\u ad\u mod\u表单。当用户不是匿名的时候,
有效吗?@BearBrown是的,检查了后面的代码,否则:
否后面的代码不检查errors@BearBrown我有add\u ad\u mod\u表单。在else
之后是否有效(),如果缺少另一行,请指向它如果添加\u ad\u mod\u表单。是否有效()。。。在else
之后,您不应该重新初始化表单以查看错误。您是否检查了isadd\u ad\u mod\u表单。当用户不是匿名的时候,
有效吗?@BearBrown是的,我检查了之后的代码,否则:
否您的代码在else
之后没有检查errors@BearBrown我有add_ad_mod_表单。是否有效()
在else
之后,如果缺少另一行,请指向它如果添加\u ad\u mod \u表单。是否有效()。。。在else
之后,您不应该重新初始化表单以查看错误。它返回“bool”对象不可调用
如果不请求,则使用。用户。是否经过身份验证:
若要查看更改@AhmedWagdiDo您有自定义用户模型吗?因为AbstractBaseUser
和AnonymousUser
都是请求的常见类型。user
implement作为一种方法而不是字段或属性是同名的。@LemayzeurI做到了,,并且当用户被激活时,它不会给出错误,但仍然不会保存到DBauthenticated@schwobaseggl是的,我有一个自定义用户模型它返回“bool”对象不可调用
如果没有请求,则使用。用户。是否经过身份验证:
要查看更改@AhmedWagdid您有自定义用户模型吗?因为AbstractBaseUser
和AnonymousUser
都是请求的常见类型。user
implement作为一种方法,而不是字段或属性,是同名的。@LemayzeurI这样做了,并且当用户被删除时,它没有给出错误,但仍然没有保存到DBauthenticated@schwobaseggl是的,我有一个自定义用户模型