簡體   English   中英

Django forms 中的自定義 EditProfile,提交按鈕不起作用

[英]custom EditProfile in Django forms, submit button not working

我在 forms.py 文件中創建了 EditProfile FORMs:

 from django.contrib.auth.forms import UserChangeForm
 from korisnici.models import CustomKorisnici
 from django import forms



class EditProfile(UserChangeForm):
    email = forms.EmailField(widget=forms.EmailInput(attrs={'class': 'form-control'}))
    first_name = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control'}))
    last_name = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control'}))
    phone_number = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control'}))
    bio = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control'}))
    phone_number = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'class': 'form-control'}))

    class Meta:
        model = CustomKorisnici
        fields = ('username', 'first_name', 'last_name', 'email','bio','phone_number','profile_image')

    def __init__(self, *args, **kwargs):
        super(EditProfile, self).__init__(*args, **kwargs)
        self.fields['username'].widget.attrs['class'] = 'form-control'
        self.fields['phone_number'].required = False
        self.fields['profile_image'].required = False
        self.fields['bio'].required = False

在我的 HTML 文件(edit_profile.html)中運行默認的 Django 表單后:

<div class="form-group">
 <div class="container">
   <div class="form">
      <form method="post" enctype="multipart/form-data">
       {% csrf_token %}
       {{ form.as_p }}
        <button id="btn" class="btn" type="submit">Edit Profile</button>
      </form>
    </div>
   </div>
 </div>

當我點擊提交按鈕時,它工作正常,我的個人資料頁面被編輯並且數據在基礎上發生變化。 但是當我在引導程序中自定義我的表單時,提交按鈕沒有做任何事情。 這是我的引導表單:

<form method="post" enctype="multipart/form-data">
  {% csrf_token %}
  <div class="form-group">
    <label >Username</label>
    <input type="text" class="form-control"  name="username">
  </div>
  <div class="form-group">
    <label >First name</label>
    <input type="text" class="form-control"  name="first_name">
  </div>
  <div class="form-group">
    <label >Last name</label>
    <input type="text" class="form-control"  name="last_name">
  </div>
  <div class="form-group">
    <label >Email </label>
    <input type="email" class="form-control"  name="email">
  </div>
  <div class="form-group">
    <label >Biography </label>
    <input type="text" class="form-control"  name="bio">
  </div>
  <div class="form-group">
    <label >Phone number</label>
    <input type="text" class="form-control"  name="phone_number">
  </div>
  <div class="form-group">
    <label >Profile image</label>
    <input type="file" class="form-control"  name="profile_image">
  </div>

  <button id="btn" class="btn" type="submit">Edit Profile</button>
</form>

和 view.py:

 class UserEditProfileView(generic.UpdateView):
    form_class = EditProfile
    template_name = 'registration/edit_profile.html'
    success_url = reverse_lazy('home')

    def get_object(self):
       return self.request.user

使用標簽

<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<label >Username</label>
<input type="text" class="form-control"  name="username">{{ form.first_name }}
</div>
...ecc
<button id="btn" class="btn" type="submit">Edit Profile</button>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM