Próbuję utworzyć stronę systemu inwentaryzacji, która pozwoli użytkownikowi zaktualizować ilość otrzymanych elementów.Próbuję przekazać zestaw kwerendy jako dane początkowe do zestawu
Chcę wyświetlić tabelę wszystkich produktów i pozwolić użytkownikowi na wpisanie odebranej ilości, którą opublikuję i powtórzę, aby zaktualizować bazę danych.
Oto mój widok:
def new_shipment(request):
list_of_active_products = Product.objects.filter(status=1)
ShipmentFormSet = formset_factory(ShipmentForm, extra=0)
formset = ShipmentFormSet(initial=list_of_active_products)
return render_to_response('inventory/new_shipment.html', {'formset': formset})
Oto mój wzór do postaci:
class ShipmentForm(forms.Form):
sku = forms.IntegerField()
product_name = forms.CharField(max_length=100)
quantity = forms.IntegerField()
A oto szablon formularza:
<form method="post" action="">
<table>
{% for form in formset %}
{{ form }}
{% endfor %}
</table>
<input type="submit" />
</form>
I tu jest błąd I otrzymuję:
Złapał atrybut AttributeError podczas renderowania: Obiekt "Produkt" nie ma atrybutu "Uzyskaj"
Czy ktoś może mi w tym pomóc?
OP używa klasy formset_factory, podczas gdy queryset jest możliwy tylko z modelformset_factory. Przynajmniej w niektórych wersjach Django twój kod nie będzie działał –