Предварительно заполните форму редактирования существующим описанием продукта в Django.Python

Программы на Python
Anonymous
Предварительно заполните форму редактирования существующим описанием продукта в Django.

Сообщение Anonymous »

Я создаю приложение инвентаризации Django и имею модель продукта с различными полями. Я реализовал кнопку редактирования для каждой строки продукта, которая позволяет пользователям обновлять информацию. Однако при нажатии кнопки редактирования форма отображается пустой для всех полей.
Я хочу, чтобы форма редактирования автоматически отображала существующую информацию о продукте для каждого поля, поэтому пользователям нужно изменить только определенные подробности. Это избавляет от необходимости вводить все заново.
Я просмотрел документацию 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

Вернуться в «Python»