首页 \ 问答 \ 创建我自己的登录表单django(creating my own login form django)

创建我自己的登录表单django(creating my own login form django)

一直在寻找2天现在,我只需要创建我自己的登录表单..我需要在forms.py中创建表单,然后连接到views.py中的视图,并从urls.py中的URL调用它,并使用所有我的自定义用户模型作为后端

这里是我的models.py ,其中包含用户模型:

class UserModelManager(BaseUserManager):
    def create_user(self, email, password, pseudo):
        user = self.model()
        user.name = name
        user.email = self.normalize_email(email=email)
        user.set_password(password)
        user.save()

        return user

    def create_superuser(self, email, password):
        '''
        Used for: python manage.py createsuperuser
        '''
        user = self.model()
        user.name = 'admin-yeah'
        user.email = self.normalize_email(email=email)
        user.set_password(password)

        user.is_staff = True
        user.is_superuser = True
        user.save()

        return user


class UserModel(AbstractBaseUser, PermissionsMixin):
    ## Personnal fields.
    email = models.EmailField(max_length=254, unique=True)
    name = models.CharField(max_length=16)
    ## [...]

    ## Django manage fields.
    date_joined = models.DateTimeField(auto_now_add=True)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELD = ['email', 'name']

    objects = UserModelManager()

    def __str__(self):
        return self.email

    def get_short_name(self):
        return self.name[:2].upper()

    def get_full_name(self):
        return self.name

Been looking for 2 days now, I simply need to create my own login form .. I need to create the form in forms.py then connect to a view in views.py and call it from an URL in urls.py and all use my custom user model as backend

here are my models.py that contains user model :

class UserModelManager(BaseUserManager):
    def create_user(self, email, password, pseudo):
        user = self.model()
        user.name = name
        user.email = self.normalize_email(email=email)
        user.set_password(password)
        user.save()

        return user

    def create_superuser(self, email, password):
        '''
        Used for: python manage.py createsuperuser
        '''
        user = self.model()
        user.name = 'admin-yeah'
        user.email = self.normalize_email(email=email)
        user.set_password(password)

        user.is_staff = True
        user.is_superuser = True
        user.save()

        return user


class UserModel(AbstractBaseUser, PermissionsMixin):
    ## Personnal fields.
    email = models.EmailField(max_length=254, unique=True)
    name = models.CharField(max_length=16)
    ## [...]

    ## Django manage fields.
    date_joined = models.DateTimeField(auto_now_add=True)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELD = ['email', 'name']

    objects = UserModelManager()

    def __str__(self):
        return self.email

    def get_short_name(self):
        return self.name[:2].upper()

    def get_full_name(self):
        return self.name

原文:https://stackoverflow.com/questions/50898193
更新时间:2023-02-28 17:02

最满意答案

我没有你的$options变量,所以我创建了自己的问题表来模拟你的情况。

要选择一个radio button我们只需要使用这个jQuery $("input[type=radio]:checked")然后我们必须使用.each()函数检查这些选中的单选按钮的每个人。

以下是您应该做的完整示例:

$("#submit").on("click",function(){

$("input[type=radio]:checked").each(function(){
console.log($(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="radio" id="form1">
<label>Question 1
<input type="radio" class="optionChecked" name="name1" id="'id1" value="value1" data-id="option1" data-title="question1"></label><br>

<label>Question 2
<input type="radio" class="optionChecked" name="name2" id="'id2" value="value2" data-id="option2" data-title="question2"></label><br>

<label>Question 3
<input type="radio" class="optionChecked" name="name3" id="'id3" value="value3" data-id="option3" data-title="question3"></label><br>

<label>Question 4
<input type="radio" class="optionChecked" name="name4" id="'id4" value="value4" data-id="option4" data-title="question4"></label><br>

<label>Question 5
<input type="radio" class="optionChecked" name="name5" id="'id5" value="value5" data-id="option5" data-title="question5"></label><br>

<button type="button" id="submit"> Submit</button>
</div>


I don't have your $options variable, so I created my own questions form to simulate your situation.

To select a radio button we have only to use this jQuery $("input[type=radio]:checked") then we must check everyone of these checked radio buttons using the function .each().

Here is a full example of what you should do:

$("#submit").on("click",function(){

$("input[type=radio]:checked").each(function(){
console.log($(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="radio" id="form1">
<label>Question 1
<input type="radio" class="optionChecked" name="name1" id="'id1" value="value1" data-id="option1" data-title="question1"></label><br>

<label>Question 2
<input type="radio" class="optionChecked" name="name2" id="'id2" value="value2" data-id="option2" data-title="question2"></label><br>

<label>Question 3
<input type="radio" class="optionChecked" name="name3" id="'id3" value="value3" data-id="option3" data-title="question3"></label><br>

<label>Question 4
<input type="radio" class="optionChecked" name="name4" id="'id4" value="value4" data-id="option4" data-title="question4"></label><br>

<label>Question 5
<input type="radio" class="optionChecked" name="name5" id="'id5" value="value5" data-id="option5" data-title="question5"></label><br>

<button type="button" id="submit"> Submit</button>
</div>

相关问答

更多
  • document.querySelector('.rad')只能引用第一个单选按钮(一个是19 ,而另一个则不是)。 你可能想要事件代表团 。 替换document.querySelector('.rad').addEventListener("change", nextQuestion); 通过document.getElementById("question").addEventListener("change", nextQuestion); 。 这是因为change事件冒泡到question元素。 ...
  • 在Deif的解决方案上构建,这将在单击div时切换检查状态 小提琴
    Some content