0

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)
4

1 に答える 1

0

エラーは行によって発生する可能性があります

event = Event.objects.create(user=user.get_profile(), name=na, date=da, description=de, members=me)

__init__()ModelここではEvent、は通常のフィールドとプロパティへの割り当てのみを受け入れますkwargs。M2Mフィールドは受け入れられないため、エラーが発生します。

コードを以下に変更すると問題が解決する可能性があります。ドキュメントでM2Mの割り当てを確認してください。

event = Event.objects.create(user=user.get_profile(), name=na, date=da, description=de)
event.members = form.cleaned_data['members']
于 2012-07-01T05:05:20.973 に答える