相关疑难解决方法(0)

除非选中,否则带有BooleanField的Django表单始终无效

我有一个使用以下形式的应用程序:

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-forms

46
推荐指数
3
解决办法
3万
查看次数

如何使用django-allauth访问用户名和配置文件

我正在使用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用户相关的应用程序吗?

谢谢你的帮助.

python django oauth django-authentication

8
推荐指数
2
解决办法
7255
查看次数

django allauth 自定义注册表单以分配不同的组

我在系统中有两种类型的用户,我想在注册时分配适当的组。参考如何在使用 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 django-allauth

7
推荐指数
1
解决办法
2101
查看次数

使用django-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)

我也按照这些说明自定义all-auth 注册表单类:

# 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

python django django-models django-allauth

6
推荐指数
1
解决办法
7544
查看次数

使用 Django allauth 创建自定义字段

我正在尝试为 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)

python django django-models django-allauth

6
推荐指数
1
解决办法
9919
查看次数

是否有任何解决方案可以将验证码添加到Django-allauth?

是否有任何解决方案使用验证码与django-allauth?我想在注册表上使用验证码进行标准电子邮件+密码注册.

captcha django-allauth

4
推荐指数
1
解决办法
2032
查看次数