フォームから別のモデルのインスタンスを外部キーとして取得するモデルのインスタンスを保存しようとして立ち往生しています。
モデル
class Customer(models.Model):
owner = models.ForeignKey(User)
custname = models.CharField()
class Appointment(models.Model):
user = models.ForeignKey(User)
start = models.DateTimeField()
end = models.DateTimeField()
customer = models.ForeignKey(Customer)
形
class AppointmentForm(forms.Form):
basedate = forms.DateField()
start = forms.TimeField(widget=forms.Select())
end = forms.IntegerField(widget=forms.Select())
customer = forms.ModelMultipleChoiceField(queryset=Customer.objects.all())
一般的な FormView で動作できないメソッド:
def form_valid(self, form):
if form.is_valid():
appointment = Appointment()
appointment.user = self.request.user
basedate = form.cleaned_data['basedate']
start = form.cleaned_data['start']
duration = form.cleaned_data['end']
appointment.start = datetime.datetime.combine(basedate, start)
appointment.end = appointment.start + datetime.timedelta(minutes=duration)
appointment.save()
return super(AppointmentCreate, self).form_valid(form)
フォームから外部キーの顧客を読み取り、それを予定に渡す最後のメソッドに何を追加すればよいでしょうか? request.user に属する顧客のみがフォームに表示されるようにフィルタリングする方法はありますか?
ご協力いただきありがとうございます。