다른 테이블에서 생성 된 양식에 양식 필드를 추가
이 PRODUCT_ID
사진을
장고 : <br /> 크기 <br /> 색상 <br /> 등 <br /></p> <p>다른 테이블 사진 : :이 테이블 제품이
및 제품 표에서 양식을 생성했지만 해당 제품에 그림을 추가하기위한 필드도 필요합니다. 사진을 위해 제품 생성 양식에 필드를 추가 할 수 있습니까?
미리 감사드립니다.
다른 테이블에서 생성 된 양식에 양식 필드를 추가
이 PRODUCT_ID
사진을
장고 : <br /> 크기 <br /> 색상 <br /> 등 <br /></p> <p>다른 테이블 사진 : :이 테이블 제품이
및 제품 표에서 양식을 생성했지만 해당 제품에 그림을 추가하기위한 필드도 필요합니다. 사진을 위해 제품 생성 양식에 필드를 추가 할 수 있습니까?
미리 감사드립니다.
짧은 대답은 '예'입니다. 템플릿과 뷰에주의해야합니다.
코드,보기, 장고 모델 및 템플릿을 공유 할 수 있습니까? 모델 양식을 사용하고 있습니까? 왜 그것들을 별도의 모델 (테이블)로 유지하고 있습니까?
제 생각에는 모델을 별도로 유지할 필요가없는 경우 그림을 포함하도록 제품 모델을 편집하십시오. 그러면 귀하의 양식이 귀하의 필요에 잘 맞을 것입니다.
희망이 도움이됩니다. 그렇지 않은 경우 코드를 공유하십시오.
동일한 <form>
태그에 prefix 인수를 사용하여 여러 양식을 포함 할 수 있습니다.
그림 모델 양식에서 제품 필드를 제외하십시오. 보기에서 두 양식이 모두 유효한지 확인하십시오. 두 양식이 모두 유효하면 두 양식을 모두 저장하고 그림 양식에 commit=False
을 사용하여 수동으로 제품을 설정할 수 있습니다.
모두 함께, 양식 및보기는 다음과 같이 보일 것을 퍼팅 :
class ProductForm(forms.ModelForm):
class Meta:
model = Product
class PictureForm(forms.ModelForm):
class Meta:
model = Picture
exclude = ('product',)
def my_view(request):
if request.method == "POST":
product_form = ProductForm(prefix="product", data=request.POST)
picture_form = PictureForm(prefix="picture", data=request.POST, files=request.FILES)
if product_form.is_valid() and picture_form.is_valid():
product = product_form.save()
picture = picture_form.save(commit=False)
picture.product=product
picture.save()
return HttpResponseRedirect("/success_url/")
else:
product_form = ProductForm(prefix="product")
picture_form = PictureForm(prefix="picture")
return render(request, "my_template.html", {'product_form':product_form,
'picture_form': picture_form,
})
귀하의 템플릿은 다음과 같이 보일 것이다 :
<form>
<table>
<tbody>
{{ product_form }}
{{ picture_form }}
</tbody>
</table>
<p><input type="submit" value="Submit" /></p>
</form>
감사를 당신의 대답. 먼저 제품 테이블에 그림을 그렸지만 한 제품에 둘 이상의 그림이 필요할 것이라는 것을 깨달았습니다. 그림을위한 특별한 테이블을 만들었습니다. Alasdair의 코드가 그 일을 해냈습니다. – fiddis