0
私は以前の回答では解決策が見つかりませんでしたので、クエリーセットによって作成されたフォームフィールドの結果を登録する方法を尋ねます。フォームフィールドのDjango単純クエリーセット
@python_2_unicode_compatible
class Choice(models.Model):
choice_text = models.CharField(max_length=100)
def __str__(self):
return self.choice_text
@python_2_unicode_compatible
class Contatto(models.Model):
contatto_choice = models.ForeignKey(Choice, on_delete=models.PROTECT)
phone_number = models.CharField(max_length=12)
email = models.CharField(max_length=100)
text = models.CharField(max_length=250)
def __str__(self):
return self.email
class ContactForm(ModelForm):
class Meta:
model = Contatto
fields = ['contatto_choice', 'phone_number','email','text']
マイforms.pyは次のとおりです:たぶん私はここに簡単な何か間違ったことをやっているが、私のモデルはどのようにこれまで
class ContactForm(forms.Form):
contatto_choice = forms.ModelChoiceField(queryset=Choice.objects.all())
phone_number = forms.CharField(max_length=12)
email = forms.CharField(max_length=100)
text = forms.CharField(widget=forms.Textarea, max_length=500)
と私の見解は以下のとおりです。
def contatti(request):
if request.method=="POST":
form = ContactForm(request.POST)
if form.is_valid():
contatto = Contatto()
contatto.phone_number = form.cleaned_data['phone_number']
contatto.email = form.cleaned_data['email']
contatto.text = form.cleaned_data['text']
contatto.contatto_choice = form.cleaned_data['contatto_choice']
contatto.save()
recipients = ['[email protected]']
send_mail("Contatto Cercaservizi", contatto.phone_number+' '+contatto.email+' '+contatto.text,contatto.email, recipients)
return HttpResponseRedirect('/')
else:
form = ContactForm()
return render(request, 'form.html', {'form': form})
の眺め送信されたフォームは、contatto_choiceが選択のインスタンスでなければならないという事実について不平を言う。私はこれを解決する方法についてのチュートリアルを見つけることができない。もしあなたが助けられるなら、それは評価されるでしょう。
他のフォームを必要としないのだろうか? –
私はこれをやり遂げる方法でした... – softwareplay
どうやって違うのですか? – softwareplay