説明: テンプレートはオートコンプリートを完全にレンダリングします...しかし、テストして「マネージャーの追加」をクリックすると、次のエラーが返されます:
Exception Type: IntegrityError
Exception Value: investments_managesfund.manager_id may not be NULL
私はこれを理解することはできません。POST では、csrf_token とマネージャーのユーザー名を送信しているためです。
マネージャーを追加して VIEWs.py に資金を提供します。
@login_required
def add_manager_to_fund(request, fund_id):
fund = get_object_or_404(Fund, id=fund_id)
if request.POST['from'] == 'fund':
if 'omnibox' in request.POST:
manager = ManagerProfile.objects.get(user=request.user)
if not ManagesFund.objects.filter(verified=True, fund=fund, manager=manager).exists() and not request.user.is_staff:
return HttpResponseRedirect('/profile/fund/' + fund_id + '/')
try:
mp = ManagerProfile.objects.get(user__username=request.POST['omnibox'])
fundManager = ManagesFund.objects.get(manager=mp, fund=fund, from_user=True)
if not fundManager.verified:
fundManager.verified = True
fundManager.save()
except ObjectDoesNotExist:
fundManager, created = ManagesFund.objects.get_or_create(manager__user__username=request.POST['omnibox'], fund=fund, from_user=False)
if created:
fundManager.save()
return HttpResponseRedirect('/profile/edit/fund/' + fund_id + '/')
オートコンプリート VIEWs.py:
@login_required
def managers(request):
managers = ManagerProfile.objects.exclude(user=None)
result = {}
for manager in managers:
result[manager.user.get_full_name()] = manager.user.username
return HttpResponse(json.dumps(result))
オートコンプリート ビューはユーザー名を渡し、add_manager_to_fund() はユーザー名を受け取ります。これを修正するにはどうすればよいですか?