我有一个使用以下形式的应用程序:
class ConfirmForm(forms.Form):
account_name = forms.CharField(widget=forms.HiddenInput)
up_to_date = forms.BooleanField(initial=True)
Run Code Online (Sandbox Code Playgroud)
我使用以下模板exerpt中的表单:
<form class="confirmform" action="/foo/" enctype="multipart/form-data" method="post">
{{ confirm_form.up_to_date }} Check if this data brings the account up to date.<br>
{{ confirm_form.account_name }} <input type="submit" name="confirm" value="Confirm" />
</form>
Run Code Online (Sandbox Code Playgroud)
我的视图使用以下基本代码结构:
if request.method == 'POST':
#check for 'confirm' because I actually have multiple forms in this page
if 'confirm' in request.POST:
confirm_form = ConfirmForm(request.POST)
if confirm_form.is_valid():
#do stuff
else:
c['confirm_form'] = confirm_form
else:
c['confirm_form'] = ConfirmForm({'account_name':'provided_value'})
Run Code Online (Sandbox Code Playgroud)
有两件事是错的:
1)即使我有initial = True,当页面加载时取消选中该复选框
2)除非我勾选复选框,否则表格始终无效.它仅为up_to_date提供错误:"此字段是必需的."
我已经阅读了这个类似的问题, …
我正在使用Django和django-allauth进行社交认证.
我已经启动并运行身份验证,但是任何人都可以举例说明如何:
例如,在主页上,我有
{% if user.is_authenticated %}
<li><a href="{% url account_logout %}?next=/">Logout</a></li>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
这正确地显示了Logout链接,但是我如何添加用户的名字和头像?
像(伪代码)的东西:
<p>You're logged in with {{ user.account_provider? }} as {{ user }}.</p>
<img src="{{ user.avatar_url }}" />
Run Code Online (Sandbox Code Playgroud)
然后,如果我想为用户的个人资料添加额外的属性,我该怎么办?我应该使用其他一些Django用户相关的应用程序吗?
谢谢你的帮助.
我在系统中有两种类型的用户,我想在注册时分配适当的组。参考如何在使用 django-allauth 时自定义用户配置文件,我想我可以覆盖注册表单并执行以下操作:
class CustomSignupForm(forms.Form):
login_widget = forms.TextInput(attrs={'type': 'email',
'placeholder': _('email'),
'autofocus': 'autofocus',
'class': 'form-control'
})
email = forms.EmailField(label='Email', widget=login_widget)
password = PasswordField(label='Password', widget=forms.PasswordInput(attrs={'class': 'form-control'}))
password2 = PasswordField(label='Re-type Password', widget=forms.PasswordInput(attrs={'class': 'form-control'}))
def save(self, request, user):
role = request.GET.get('type')
print(role)
group = role or "group1"
g = Group.objects.get(name=group)
user.groups.add(g)
user.save()
Run Code Online (Sandbox Code Playgroud)
但我不断收到以下错误:
save() missing 1 required positional argument: 'user'
Run Code Online (Sandbox Code Playgroud)
此外,我已将 allauth 配置为使用电子邮件登录。
谢谢你的帮助。
我有一个额外字段的django 自定义用户模型 MyUser:
# models.py
from django.contrib.auth.models import AbstractUser
class MyUser(AbstractUser):
age = models.PositiveIntegerField(_("age"))
# settings.py
AUTH_USER_MODEL = "web.MyUser"
Run Code Online (Sandbox Code Playgroud)
# forms.py
class SignupForm(forms.Form):
first_name = forms.CharField(max_length=30)
last_name = forms.CharField(max_length=30)
age = forms.IntegerField(max_value=100)
class Meta:
model = MyUser
def save(self, user):
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
user.age = self.cleaned_data['age']
user.save()
# settings.py
ACCOUNT_SIGNUP_FORM_CLASS = 'web.forms.SignupForm'
Run Code Online (Sandbox Code Playgroud)
提交后SignupForm(属性的字段MyUser.age呈现为corectly),我收到此错误:
/ accounts/signup /的完整性错误
(1048,"列'年龄'不能为空")
存储自定义用户模型的正确方法是什么?
django-allauth:0.12.0; django:1.5.1; Python 2.7.2
我正在尝试为 Django allauth SignUp 表单包含自定义字段,但没有取得太大成功。我创建了以下表单和模型:
模型.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='profile', unique=True)
# The additional attributes we wish to include.
website = models.URLField(blank=True)
picture = models.ImageField(upload_to='profile_images', blank=True)
def __unicode__(self):
return self.user.username
Run Code Online (Sandbox Code Playgroud)
表格.py
from django.contrib.auth import get_user_model
from django import forms
from .models import UserProfile
class SignupForm(forms.ModelForm):
class Meta:
model = get_user_model()
fields = ('username', 'password', 'email', 'website', 'picture')
def save(self, user):
profile.save()
user.save()
Run Code Online (Sandbox Code Playgroud)
设置.py
AUTH_USER_MODEL = …Run Code Online (Sandbox Code Playgroud) 是否有任何解决方案使用验证码与django-allauth?我想在注册表上使用验证码进行标准电子邮件+密码注册.