Tenho um conjunto de livros alocados em prateleiras/estantes. Primeiro escaneio a prateleira e em seguida os livros nela ( pra localização). Os livros podem ser mudados de posição e diariamente são escaneadas as prateleiras novamente pra atualizar a localização. Mais os livros movidos estão gerando duplicidade ( registrado em duas posições, portanto nao posso localizar o correto)
Na lógica ao registrar um livro com mesmo código deveria apagar ou sobrepor o anterior com a nova posição. Tentei fazer utilizando update_or_create mas não consegui.
Grato !
model.py
class Shelf(models.Model):
shelf = models.CharField(max_length=50, verbose_name="Shelf", null=True, blank=True)
def __str__(self):
return ("{}".format(self.shelf))
class OrderNumberShelf(models.Model):
roll_number_shelf = models.CharField(max_length=50, verbose_name="Roll Number", null=True, blank=True)
shelf = models.ForeignKey(Shelf, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return ("{} ".format(self.roll_number_shelf))
views.py
def ShelfCreate(request):
shelf = Shelf()
ShelfFormset = inlineformset_factory(
Shelf, OrderNumberShelf,
form = MaterialShelfForms,
extra=0,
can_delete=False,
validate_min=True)
if request.method == 'POST':
forms_shelf = ShelfForm(request.POST, request.FILES, instance=shelf, prefix='main')
formset_shelf = ShelfFormset(request.POST, request.FILES, instance=shelf, prefix='product')
if forms_shelf.is_valid() and formset_shelf.is_valid():
forms_shelf = forms_shelf.save(commit=False)
forms_shelf.save()
formset_shelf.save()
return HttpResponseRedirect('loc')
else:
forms_shelf = ShelfForm(instance=shelf, prefix='main')
formset_shelf = ShelfFormset(instance=shelf, prefix='product')
context = {
'forms_shelf': forms_shelf,
'formset_shelf': formset_shelf,
}
return render(request, 'cadastros/location.html', context)