Pie*_*NAY 11 django django-models django-forms django-views
我需要一个允许在计划中创建或添加会话的表单
class Session(models.Model):
tutor = models.ForeignKey(User)
start_time = models.DateTimeField()
end_time = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
class SessionForm(forms.ModelForm):
class Meta:
model = Session
exclude = ['tutor']
Run Code Online (Sandbox Code Playgroud)
def editor(request):
if request.method == 'GET':
if request.GET['id'] != '0':
# The user has selected a session
session = Session.objects.get(id=request.GET['id'])
form = SessionForm(instance=session)
else:
# The user wants to add a new session
form = SessionForm()
return render_to_response('planner/editor.html',
{'form': form,}, context_instance=RequestContext(request),)
Run Code Online (Sandbox Code Playgroud)
<form action="/planner/post" method="post">{% csrf_token %}
{{ form.as_p }}
</form>
Run Code Online (Sandbox Code Playgroud)
def post(request):
if request.method == 'POST':
form = SessionForm(request.POST)
if form.is_valid():
form.instance.tutor = request.user
form.save()
obj = {'posted': True}
return HttpResponse(json.dumps(obj), mimetype='application/json')
else:
return render_to_response('planner/editor.html',
form, context_instance=RequestContext(request),)
Run Code Online (Sandbox Code Playgroud)
始终创建会话(从不更新)
post,我怎么知道会话必须更新而不是创建?Ala*_*air 18
如果要更新会话,则需要在绑定表单时提供实例.
如果表单是有效的,你就可以节省用commit=False,并更新导师.
form = SessionForm(instance=instance, data=request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.tutor = request.user
instance.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24027 次 |
| 最近记录: |