ORA-00001: нарушено уникальное ограничение (SDESERP.UK_CODELKUP), встроенное в django в lineformset
Привет, я пытаюсь создать форму с родительско-дочерними моделями, используя python Django Inlineformset_factory, но когда я пытаюсь обновить дочернюю форму, она выдает ошибку уникального ограничения. Здесь я делюсь своим кодом модели, кодом форм, кодом представлений. Я пытаюсь решить эту проблему последние два дня, но безуспешно. пожалуйста, помогите мне решить проблему.
Код модели-->
class CodeList(models.Model):
listname = models.CharField(db_column='LISTNAME', max_length=20, primary_key=True)
description = models.CharField(db_column='DESCRIPTION', max_length=100)
adddate = models.DateField(db_column='ADDDATE')
addwho = models.CharField(db_column='ADDWHO', max_length=20)
editdate = models.DateField(db_column='EDITDATE')
editwho = models.CharField(db_column='EDITWHO', max_length=20)
class Meta:
db_table ='CODELIST'
def __str__(self):
return f"{self.listname}"
class CodeLkup(models.Model):
listname = models.ForeignKey(CodeList, db_column='LISTNAME', on_delete=models.CASCADE)
code = models.CharField(db_column='CODE', max_length=30, primary_key=True) #,
eng_desc = models.CharField(db_column='ENG_DESC', max_length=250)
bl_desc = models.CharField(db_column='BL_DESC', max_length=250, blank=True)
adddate = models.DateField(db_column='ADDDATE')
addwho = models.CharField(db_column='ADDWHO', max_length=20)
editdate = models.DateField(db_column='EDITDATE')
editwho = models.CharField(db_column='EDITWHO', max_length=20)
class Meta:
db_table = 'CODELKUP'
unique_together = ('listname', 'code')
def __str__(self):
return f"{self.code}-{self.eng_desc}"
формирует код-->
просмотр кода-->
def edit_system_codes(request, listname):
is_edit = True
codelist = get_object_or_404(CodeList, listname=listname)
instance = codelist
codelkup =CodeLkup.objects.filter(listname=listname)
if request.method == 'POST':
form = CodeListForm(request.POST or None, request=request, instance=codelist, is_edit=is_edit)
formset = CodeLkupFormSet(request.POST or None, instance=codelist, form_kwargs={
'request': request,
'is_edit': True})
if form.is_valid() and formset.is_valid():
try:
master = form.save()
formset.instance = master
formset.save()
messages.success(request, _("LBL_SAVED"))
return redirect('codes_list')
except IntegrityError as e:
error_msg = str(e)
print(error_msg)
messages.error(request, f'{{ error_msg }}')
except DatabaseError as e:
messages.error(request, f'Database error occured: {str(e)}')
except Exception as e:
messages.error(request, f'unexpected error: {str(e)}')
else:
form = CodeListForm(request=request, is_edit=is_edit, instance=codelist)
formset = CodeLkupFormSet(instance=codelist, form_kwargs={
'request': request,
'is_edit': True})
return render(request, 'system_codes/edit_system_codes.html', {'form' : form, 'formset' : formset})
html-код-->
javascript code-->
<script>
$(document).ready(function(){
hideLoader();
$('#edit_system_codes_save_button').click(function(){
showLoader();
document.getElementById('edit_system_codes_form').submit();
})
});
</script>