如何在Django视图中使用注册(注册/登录)模式(引导模板)?

2024-06-02 08:39:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是编程新手。我发现很好的引导模式注册,所以我把它放到我的html代码,它看起来不错,但没有什么可以按下或张贴。 在我使用django和UserCreationForm之前,没有modals。帮我把这两件事联系起来:

这是我找到的引导模式

<!-- Modal -->
<div class="modal fade" id="elegantModalForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
  aria-hidden="true">
  <div class="modal-dialog" role="document">
    <!--Content-->
    <div class="modal-content form-elegant">
      <!--Header-->
      <div class="modal-header text-center">
        <h3 class="modal-title w-100 dark-grey-text font-weight-bold my-3" id="myModalLabel"><strong>Войти</strong></h3>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <!--Body-->
        <form type="post" action="{% url 'common:login' %}">
      <div class="modal-body mx-4">
        <!--Body-->
        <div class="md-form mb-5">
          <input type="email" name="useremail" id="Form-email1" class="form-control validate">
          <label data-error="wrong" data-success="right" for="Form-email1">Ваша почта</label>
        </div>

        <div class="md-form pb-3">
          <input type="password" id="Form-pass1" class="form-control validate">
          <label data-error="wrong" data-success="right" for="Form-pass1">Пароль</label>
          <p class="font-small blue-text d-flex justify-content-end">Забыли <a href="#" class="blue-text ml-1">
              пароль?</a></p>
        </div>

        <div class="text-center mb-3">
          <button type="button" class="btn blue-gradient btn-block btn-rounded">ок</button>
        </div>
        <p class="font-small dark-grey-text text-right d-flex justify-content-center mb-3 pt-2"> или войти
          с помощью:</p>

        <div class="row my-3 d-flex justify-content-center">
          <!--Facebook-->
          <button type="button" class="btn btn-white btn-rounded mr-md-3 z-depth-1a"><i class="fab fa-facebook-f text-center"></i></button>
          <!--Twitter-->
          <button type="button" class="btn btn-white btn-rounded mr-md-3 z-depth-1a"><i class="fab fa-twitter"></i></button>
          <!--Google +-->
          <button type="button" class="btn btn-white btn-rounded z-depth-1a"><i class="fab fa-google-plus-g"></i></button>
        </div>
      </div>
            </form>
      <!--Footer-->
      <div class="modal-footer mx-5 pt-3 mb-1">
        <p class="font-small grey-text d-flex justify-content-end">Первый раз? <a href="{% url 'common:signup' %}" class="blue-text ml-1">
            Зарегистрируйся</a></p>
      </div>
    </div>
    <!--/.Content-->
  </div>
</div>
<!-- Modal -->

这是在使用modal之前的my views.py:

def signup(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('index')
    else:
        form = UserCreationForm()
    return render(request, 'registration/signup.html', {'form': form})

所以请帮我展示一下它应该如何工作。实际上我以前用{form.as{up}}但是在这种情况下我应该怎么做呢


Tags: textdivformiddatatypebuttoncontent
1条回答
网友
1楼 · 发布于 2024-06-02 08:39:52

我想你要找的是Django表格

官方文件-https://docs.djangoproject.com/en/2.2/topics/forms/

其他-(https://www.tutorialspoint.com/django/django_form_processing

首先,您需要创建一个表单模型并定义作为输入的字段。 这是一个样本-

from django import forms

class LoginForm(forms.Form):
  user = forms.CharField(max_length = 100)
  password = forms.CharField(max_length =100)

然后,需要根据表单修改视图。这是一个样本-

def login(request):
  username = "not logged in"
  if request.method == "POST":
    #Get the posted form
    MyLoginForm = LoginForm(request.POST)

    if MyLoginForm.is_valid():
      username = MyLoginForm.cleaned_data['username']
  else:
    MyLoginForm = Loginform()

  return render(request, 'loggedin.html', {"username" : username})

如果您是通过POST发送数据,不要忘记在Html文件中添加csrf令牌

form type="post" action="{% url 'common:login' %}"> {% csrf_token %}

相关问题 更多 >