Preencher previamente a tabela de formulários HTML do banco de dados usando o Django

Eu tenho uma visão baseada em classe (IndexView àsviews.py) que mostra uma tabela com todos os dados armazenados no banco de dados. Essa visualização é renderizada emindex.html usando umdef get_queryset(self) para obter todos os dados. Ainda não há problemas.

A parte difícil para mim é tentar fazer isso usando um formulário, para poder modificar e salvar omontante coluna. Não tenho problemas com a parte POST, onde uso o AJAX para salvar os novos valores. Onde estou tendo problemas é obter os valores iniciais do banco de dados para preencher um formulário do Django (forms.py)

Eu tentei usarinitial argumento na definição dos campos do formulário (emforms.py), mesmo substituindo__init__ na definição do formulário,mas não sei como obter "um valor". Quero dizer, quanto mais perto eu estive nos meus testes, estava preenchendo umMultipleChoiceField com:forms.ModelMultipleChoiceField(queryset=Item.objects.order_by('code__name')) (alcançar um campo de múltipla escolha deItem object (1), Item object (2), etc.)

Mas como você preenche um únicoCampo inteiro ouCharField com o conteúdo do banco de dados para mostrar um campo de tabela baseado em formulário no modelo?

Estou tentando primeiro com um único item (para tentar entender como referenciar um item / valor para preenchê-los usando o banco de dados) antes de fazer isso com a tabela inteira:

index.hml:

...
  <form class='my-ajax-form' method='POST' action='.' data-url='{{ request.build_absolute_uri|safe }}'>
    {% csrf_token %}
    {{form.as_table|safe}}
    <button type='submit'>Save changes</button>
  </form>
...

models.py:

class Code(models.Model):
    name = models.CharField(max_length=6)
    description = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Item(models.Model):
    code = models.ForeignKey(Code, on_delete=models.DO_NOTHING)
    amount = models.IntegerField(default=0)

forms.py:

class ItemForm(forms.Form):
    code = forms.CharField(max_length=6)
    description = forms.CharField(max_length=100)
    amount = forms.IntegerField()

views.py:

class IndexView(generic.ListView, AjaxFormMixin, FormView):
    template_name = 'inventory/index.html'
    context_object_name = 'items_list'
    form_class = ItemForm

    def form_invalid(self, form):
        ...

    def form_valid(self, form):
        ...

    def get_queryset(self):
        ...

Verifiquei esses documentos e alguns problemas antigos semelhantes, mas tentei algumas das sugestões / exemplos sem sucesso:

https://docs.djangoproject.com/en/2.0/topics/forms/modelforms/#a-full-examplehttps://www.webforefront.com/django/formprocessing.htmlPré-preenchendo Django FormsPreencher um formulário django com dados do banco de dados em exibição

Estou usando o Django 2.0.2

Qualquer ajuda seria apreciada. Desde já, obrigado.

Edição: tentando fazer algo usando o UpdateView como andi sugere. Adicionado (tentando obter um valor por ID):

class ItemUpdate(UpdateView):
    form_class = JoinForm

    def get_object(self,queryset=None):
        obj = Item.objects.get(id=self.kwargs['2'])
        return obj

E apontou o URL parapath('', views.ItemUpdate.as_view(), name='index') mas sempre pegueKeyError: '2'

questionAnswers(3)

yourAnswerToTheQuestion