Rellenar previamente la tabla de formulario HTML de la base de datos usando Django

Tengo una vista basada en clases (IndexView aviews.py) que muestra una tabla con todos los datos almacenados en la base de datos. Esta vista se representa enindex.html usando undef get_queryset(self) para obtener todos los datos. Aún no hay problemas.

La parte difícil para mí es intentar hacerlo usando un formulario, para poder modificar y guardar elcantidad columna. No tengo problemas con la parte POST, donde uso AJAX para guardar los nuevos valores. Donde tengo problemas es obtener los valores iniciales de la base de datos para completar un formulario de Django (formas.py)

Traté de usarinitial argumento en la definición de los campos de formulario (enformas.py), incluso anulando__init__ en la definición del formulario,pero no sé cómo obtener "un valor". Quiero decir, cuanto más cerca estuve en mis pruebas estaba poblando unMultipleChoiceField con:forms.ModelMultipleChoiceField(queryset=Item.objects.order_by('code__name')) (logrando un campo de opción múltiple deItem object (1), Item object (2), etc.)

¿Pero cómo pueblas una solaIntegerField oCharField con el contenido de la base de datos para mostrar un campo de tabla basado en formularios en la plantilla?

Primero estoy intentando con un solo elemento (para tratar de entender cómo hacer referencia a un elemento / valor para llenarlos usando la base de datos) antes de hacerlo con toda la tabla:

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>
...

modelos.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)

formas.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):
        ...

Revisé estos documentos y algunos problemas antiguos similares, pero probé algunas de las sugerencias / ejemplos sin éxito:

https://docs.djangoproject.com/en/2.0/topics/forms/modelforms/#a-full-examplehttps://www.webforefront.com/django/formprocessing.htmlFormas pre-pobladas de DjangoRellene un formulario de django con datos de la base de datos a la vista

Estoy usando Django 2.0.2

Cualquier ayuda sería apreciada. Gracias por adelantado.

EDITAR: Intentar hacer algo usando UpdateView como sugiere andi. Agregado (tratando de obtener un 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

Y apuntó url apath('', views.ItemUpdate.as_view(), name='index') pero siempre obtenerKeyError: '2'

Respuestas a la pregunta(3)

Su respuesta a la pregunta