私はdjangoフォームを構築しています外部キーを使用したDjangoフォームの照会なし
私のモデルは顧客に希望リストがあります。顧客は多くの希望リスト項目を持つことができます。私は、顧客ビューから欲しいリスト項目を追加します。私の問題は、私が希望リストフォームをレンダリングすると、すべての顧客とのドロップダウンがあることです。 teditable=False
を設定してドロップダウンを削除しました。しかし、今私はフォーム上に編集不可能な項目を表示したい。 Submitで編集不可能な値を戻します。私はWishlist.customer
にfalseに編集可能に設定した場合
はIすることができます:
はビューでこの値を設定し、表示目的のみ のためにHTMLにそれを渡しますか?
編集不可のwishlist.customerに処理のためにフォーム提出が返されましたか?
--------- models.py ------------
class WishList(models.Model):
customer = models.ForeignKey(Customer, editable=False)
year = models.CharField(max_length=4, blank=True)
item = models.CharField(max_length=20, blank=True)
color = models.CharField(max_length=20, blank=True)
sold = models.BooleanField(default=False)
-------- forms.py - -----------
class WishListForm(forms.ModelForm):
class Meta:
model = WishList
fields = ['carType', 'year', 'make', 'model', 'miles', 'color', ]
-------- views.py -------------
@login_required
def newWishList(request, customer_id):
cust = Customer.objects.get(pk=customer_id)
return handlePopAdd(request, WishListForm, cust, 'wishList')
def handlePopAdd(request, addForm, customer, field):
if request.method == "POST":
form = addForm(request.POST)
if form.is_valid():
newObject = form.save()
else:
form = addForm()
# Here I want to set the customer and have it displayed, not editable
form.customer=customer
pageContext = {'form': form, 'field': field}
return render_to_response("popuptemplate.html", pageContext)