테이블에 2 개의 필드가 있습니다. trackword and created_byModelForms를 사용하는 경우 필드를 수정하는 방법을 모릅니다.
필드 "created_by"를 forms.py에 포함 시키면 선택 목록이 생기고 작성자를 선택할 수 있지만 괜찮습니다.하지만 수동으로해야하는 것은 불필요합니다. 한 쪽에서는 로그인 한 사람이기 때문에 선택 목록을 사용하여 누가 트랙 워드를 추가했는지 말할 수 있습니다. 둘째, 다른 사용자가 선택 목록에있는 다른 기존 사용자를 볼 수있는 문제를 만듭니다. 다른 사람들이 볼 수 없도록해야합니다.
그래서, 내 양식 코드는 다음과 같습니다 경우 :
@login_required
def add_trackword(request):
form = masterform(request.POST or None)
if request.method == 'POST':
if form.is_valid():
form.save()
messages.add_message(request, messages.SUCCESS, "The post has been saved!")
return HttpResponseRedirect("/trackwords/list/")
return render(request, 'masterform.html', {'form': form})
FORM
<div class="row" >
<div class="panel panel-default col-md-4">
<div class="panel-body">
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-block btn-success" value="Submit">
</form>
</div>
</div>
</div>
보시다시피, 양식이 자동으로 장고 모델의 형태로 엔진에 의해 생성 내가 해달라고하면서해야한다 모든 필드를 써주세요. 또는 나는 어떻게하는지 모른다. 나는 이것을 추가하고 싶다. 'request.user'는 코드 스 니펫의 어딘가에 있습니다. 테이블이 행 셀에서 created_by를 가져 오지 않으면 null이 아닌 빈 셀 제약 조건을 발생시킬 것이기 때문입니다.
사실, 이러한 모든 추상화로 인해 편집이 매우 어려워집니다. 내가 손으로 양식을 쓰는 경우 장고가 나를 위해 모든 것을 만들도록하면 클라이언트 검사를 추가 할 수 있습니다.