양식을 제출할 때 아래 주어진 모델의 사용자 다 대다 필드에 양식을 제출 한 사용자를 자동으로 추가하고 싶습니다. 어떻게보기에서이를 수행 할 수 있습니까?
모델:
class Project(MainAbstractModel):
users = models.ManyToManyField(User)
title = models.CharField(max_length=25, default="Conflict")
보기:
def myconflicts(request):
if request.method == "POST":
form = ProjectForm(request.POST)
if form.is_valid():
form.save()
else:
form = ProjectForm()
return render(request, 'conflictmanagement/myconflicts.html')
그리고 내 양식은 간단합니다.
class ProjectForm(ModelForm):
class Meta:
model = Project
fields = ["title"]
보기에 사용자를 추가 할 수 있습니다. 예를 들면 다음과 같습니다.
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect
@login_required
def myconflicts(request):
if request.method == 'POST':
form = ProjectForm(request.POST)
if form.is_valid():
project = form.save()
project.users.add(request.user)
return redirect('name-of-some-view')
else:
form = ProjectForm()
return render(request, 'conflictmanagement/myconflicts.html', {'form': form})
참고 : POST 요청이 성공한 경우
redirect
[Django-doc] 를 만들어 Post / Redirect / Get 패턴 [wiki] 을 구현해야합니다 . 이렇게하면 사용자가 브라우저를 새로 고칠 때 동일한 POST 요청을하지 않습니다.
참고 :
@login_required
데코레이터 [Django-doc]를 사용하여 인증 된 사용자로보기를 제한 할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다