Как заполнить поле формы Django в представлении?
В моих Django формах у меня 5 полей, но 4 из них я беру из html шаблона. 5. одно будет заполнено в представлении. Когда я пытаюсь сделать это, то появляется сообщение, что форма не действительна. Как я могу заполнить данные в представлениях?
forms.py
class ProductForm(forms.ModelForm):
class Meta:
model = ProductModel
fields = ('category','brand','series','model','asin')
productform.html
<form id="firstform" action="{% url 'productpage' %}" method="POST">
{% csrf_token %}
<input type="text" id="category" name="category" placeholder="Category">
<input type="text" id="brand" name="brand" placeholder="Brand">
<input type="text" id="series" name="series" placeholder="Series">
<input type="text" id="model" name="model" placeholder="Model">
<input type="submit" id="save-button" name="save-button" value="Save" >
</form>
views.py
def productpage(request):
if request.POST.get('save-button'):
form = ProductForm()
if request.method == 'POST':
form = ProductForm(data=request.POST)
print("a")
if form.is_valid():
print("i")
form.cleaned_data["asin"] = "B324235252"
form.save()
HttpResponse("KAYDEDİLDİ")
else:
print("iiii")
HttpResponse("Form is not valid")
else:
form = ProductForm()
return render(request,"first_app/productform.html")
Исключите поле из формы:
class ProductForm(forms.ModelForm):
class Meta:
model = ProductModel
fields = ('category','brand','series','model') # 🖘 no asin
и затем заполните его в представлении:
def productpage(request):
if request.POST.get('save-button'):
if request.method == 'POST':
form = ProductForm(request.POST, request.FILES)
if form.is_valid():
form.instance.asin = 'B324235252'
form.save()
HttpResponse("KAYDEDİLDİ")
return render(request, 'first_app/productform.html')