0
Django/Pythonには新しいので、愚かな言い訳になります。私はいくつかの選択フィールドを持つモデルフォームを持っています。送信を実行すると、フィールドに検証があります。これはすべてうまくいきます。ここで、検証をインラインに変更して、最初の選択フィールドの選択を検証し、最初の選択フィールドで選択したものに応じて2番目の選択フィールドを変更します。以下の悪い例を言い訳、あなたのアイデアモデルフォームのインラインバリデーションと選択肢の変更
例 models.pyなりますしてください:私の検証にあたりなどのHTMLポストの上にあるように、また
class fruit(forms.ModelForm):
class Meta:
model = request
fields = [ 'fruit', 'color' ]
:
fruit_list = (
('apple','Apple'),
('berries','Berries),
)
apple_color = (
('red', 'Red'),
('green', 'Green'),
)
berries_color = (
('red','Red'),
('blue', 'Blue'),
)
class fruit(models.Model):
fruit = models.Charfield(max_lenght=7, choices=fruit_list)
color = models.Charfield(max_lenght=5, choices=?????) ##Here Im looking for the answer on how to switches between the two options. Maybe just a normal form
def __unicode__(self): ##python 3 use __str__
return str(self.fruit)
フォームを下の私の見解。しかし、私はインライン検証をどのように行うのか、ではない私のポストに
views.py:
def home(request):
if request.method == 'POST':
form = fruit(request.POST, request.FILES)
title = "Request Form"
context = {
"title": title,
"form": form,
}
if form.is_valid():
instance = form.save(commit=False)
return HttpResponseRedirect('/thanks/')
else:
form = fruit()
title = "Request Form"
context = {
"title": title,
"form": form,
}
return render(request, "home.html", context)
Pythonのクラスは大文字で始まる必要があります。 https://www.python.org/dev/peps/pep-0008/#id36 –
save(commit = False)と一緒に何も保存していません。私はそれが目標かどうかわからない – dietbacon
こんにちはDietbacon、申し訳ありませんが、私はinstance.save()を省略しました –