UserProfiles、連絡先、イベントを使用してサイトを構築しています。UserProfの連絡先リストからメンバーを選択して、UserProfileにリンクされた新しいイベントを追加するフォームを作成しました。最初、イベントには連絡先への外部キーがあり、EventFormはModelChoiceであり、すべてが機能しました。フォームを処理でき、連絡先がイベントに追加され、イベントがログインしたUserProfileに追加されました。
次に、ManyToManyFieldとEventForm ModelMultipleChoiceを使用してイベントを作成しようとすると、「members」がこの関数の無効なキーワード引数であるというエラーが発生します。これを完全に理解することはできません。本当にあなたの助けに感謝します:)
ビュー:
def add_events(request):
user = request.user
contacts_list = user.get_profile().contacts.all().order_by('first_name')
if user.is_authenticated():
if request.method == 'POST':
form = EventForm(request.POST)
if form.is_valid():
na = form.cleaned_data['name']
da = form.cleaned_data['date']
de = form.cleaned_data['description']
me = form.cleaned_data['members']
event = Event.objects.create(user=user.get_profile(), name=na, date=da, description=de, members=me)
return HttpResponseRedirect('/events')
else:
form.fields['members'].queryset = user.get_profile().contacts.all().order_by('first_name')
else:
form = EventForm()
form.fields['members'].queryset = user.get_profile().contacts.all().order_by('first_name')
return render_to_response('add_events.html', {'user': user, 'form': form, 'usp': user.get_profile(), 'contacts_list': contacts_list}, context_instance=RequestContext(request))
モデル:
class EventForm(forms.Form):
name = forms.CharField(max_length=100, required=True)
date = forms.DateField()
description = forms.CharField(max_length=200)
members = forms.ModelMultipleChoiceField(queryset=Profile.objects.all(), widget=forms.CheckboxSelectMultiple)
class Event(models.Model):
user = models.ForeignKey(UserProfile, related_name='event')
members = models.ManyToManyField(Profile)
name = models.CharField(max_length=100)
description = models.CharField(max_length=200)
date = models.CharField(max_length=20)