Форма django : Данные дублируются вместо обновления при редактировании в пользовательском интерфейсе
Когда я попытался отредактировать существующие данные в форме Django, она просто создает дублирующую запись вместе с новой. Как я могу избавиться от дублирующих записей в форме, я прикрепил код здесь. Пожалуйста, кто-нибудь помогите мне. Спасибо заранее
views.py def homeview(request,id=0):
userb = Userbase.objects.all()
if request.method == 'GET':
# new
if id==0:
form = Userform()
# form_mode = 'new'
else: # edit
user = Userbase.objects.get(pk=id)
form = Userform(instance = user)
# form_mode = 'update'
# post data both adding and updating
else:
if id==0:
# if id==0:
form = Userform(request.POST)
else:# save from edit
user = Userbase.objects.get(pk=id)
form = Userform(request.POST, instance=user)
if form.is_valid():
form.save()
else:
messages.error(request, form.errors)
return redirect('app:home')
return render(request, 'home.html', {'form':form, 'userb':userb})
forms.py
class Userform(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['username'].widget.attrs.update(
{'class': 'form-control mb-3', 'placeholder': 'Username'})
self.fields['email'].widget.attrs.update(
{'class': 'form-control mb-3', 'placeholder': 'E-mail', 'name': 'email', 'id': 'id_email'})
self.fields['timezone'].widget.attrs.update(
{'class': 'form-control mb-3', 'name': 'timezone', 'id': 'id_timezone', 'placeholder':'timezone'})
self.fields['my_date'].widget.attrs.update(
{'class': 'form-control mb-3', 'placeholder':'Select Timeformat','name': 'my_date', 'id': 'id_my_date'})
class Meta:
model =Userbase
fields = '__all__''''
urls.py
urlpatterns = [
path('', homeview, name='home'),
path('<int:id>/', homeview, name='home')
]