Редактирование данных в Django Невозможно показать данные

Я использую Django для создания веб-сайта. Модальный бутстрап - это то, что я использую. Все работает хорошо для добавления и удаления данных. Однако в форме Django я не могу отобразить данные, хранящиеся в базе данных для обновления. Спасибо за помощь, возможно, я что-то сделал не так в своем коде. Я не уверен в правильности моего html или модала. Спасибо

-->> HTML <<-...

-->> Edit Modal <<--

-->> urls.py <<--

urlpatterns = [

    path('userAccounts/edit_user/<user_id>', views.edit_user, name='edit_user'),

]

-->> forms.py <<--

class UserFormAdmin(forms.ModelForm):
class Meta:
    model = User
    fields = ['first_name', 'middle_name', 'last_name', 'username', 'email', 'mobile_number', 'password']
    labels = {
        'first_name': '',
        'middle_name': '',
        'last_name': '',
        'mobile_number': '',
        'email': '',
        'username': '',
        'password': '',
        'confirm_password': '',
    }

first_name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Jones', 'class': 'form-control', }))
middle_name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'A', 'class': 'form-control', }))
last_name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Smith', 'class': 'form-control',}))
mobile_number = forms.CharField(max_length=15, validators=[RegexValidator(
    '^\+[0-9]{1,3}\.?\s?\d{8,13}', message="Phone number must not consist of space and requires country code. eg : +639171234567")],widget=forms.TextInput(attrs={'placeholder': '09123456789', 'class': 'form-control',}),
                                error_messages={'unique': ("Mobile Number already exists.")})

email = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'jonesmith@gmail.com', 'class': 'form-control',}),
                        error_messages={'unique': ("Email already exists.")},)
username = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Jones_Smith31', 'class': 'form-control',}),
                           error_messages={'unique': ("Username already exists.")},)
password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': '********', 'class': 'form-control',}))
#password = forms.CharField(validators=[MinLengthValidator(8),RegexValidator('^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z])$', message="Password should be a combination of Alphabets and Numbers")], widget=forms.PasswordInput(attrs={'placeholder': '********', 'style': 'width: 460px; '}))
confirm_password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': '********', 'class': 'form-control', }))

-->> views.py <<--

def sa_userAccount_admin(request):
member = User.objects.filter(role = 2)
form = UserFormAdmin(request.POST)
context = {
    'form': form,
    'member': member,
}
print(context)
return render(request, 'pages/sa_userAccount.html', context)

def edit_user(request, user_id):
member = User.objects.get(pk=user_id)
form = UserFormAdmin(request.POST or None, instance=member)
if form.is_valid():
    form.save()
    return redirect('sa_userAccount')
return render(request, 'pages/sa_userAccount.html', 
    {'members': member,
    'form':form})

в вашем html попробуйте отобразить его следующим образом в вашем html

{% for member in members %}
<td>{{member.id}}</td>
 <td>{{member.username}}</td>
<td>{{member.first_name}}</td>

В соответствии с вашим представлением вы хотите получить члена из members

Вы можете сделать это, используя следующие шаги:

  1. получить ввод пользователя для обновления объекта в HTML Modal
  2. отправить данные методом POST с объектом pk
  3. получить объект, используя полученные данные pk
  4. обновить объект в представлениях, используя setattr(object,field name,value) из POST-данных
  5. вызов object.save() метода

Эти шаги обновят ваши объекты в базе данных, используя технику частичного обновления.

Вернуться на верх