Я хочу, чтобы форма редактирования автоматически отображала существующую информацию о продукте для каждого поля, поэтому пользователям нужно изменить только определенные подробности. Это избавляет от необходимости вводить все заново.
Я просмотрел документацию Django по формам, но не знаю, как добиться такого предварительного заполнения для функции редактирования.
Как я могу предварительно заполнить форму редактирования существующей информацией о продукте в моем приложении инвентаризации Django?
Код: Выделить всё
def edit_product(request, pk):
product = get_object_or_404(Product, pk=pk)
if request.method == 'POST':
form = ProductForm(request.POST, instance=product)
if form.is_valid():
form.save()
return redirect('product_list')
else:
form = ProductForm(instance=product)
return render(request, 'inventory/edit_product.html', {'form': form})
Код: Выделить всё
class ProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ['name', 'description', 'quantity', 'category', 'vendor', 'unit_price_buy_vat_excluded', 'unit_price_sell_vat_excluded', 'product_registered_in_stock']
Код: Выделить всё
def product_list(request):
products = Product.objects.all()
return render(request, 'inventory/product_list.html', {'products': products})
def add_product(request):
if request.method == 'POST':
form = ProductForm(request.POST)
if form.is_valid():
form.save()
return redirect('product_list')
else:
form = ProductForm()
return render(request, 'inventory/add_product.html', {'form': form})
def delete_product(request, pk):
product = get_object_or_404(Product, pk=pk)
if request.method == 'POST':
product.delete()
return redirect('product_list')
return render(request, 'inventory/delete_product.html', {'product': product})
def edit_product(request, pk):
product = get_object_or_404(Product, pk=pk)
if request.method == 'POST':
form = ProductForm(request.POST, instance=product)
if form.is_valid():
form.save()
return redirect('product_list')
else:
form = ProductForm(instance=product)
return render(request, 'inventory/edit_product.html', {'form': form})


Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-django