【发布时间】:2018-11-28 18:10:03
【问题描述】:
我正在使用清晰的表单让用户创建一个新的问题帖子,但我希望用户不要更改“项目”字段,以便问题可以放在正确的项目下。我用了form.fields['project'].widget.attrs['readonly'] = True,但这个只有样式禁用效果,没有真正的功能。
models.py
def new_issue(request, project_id):
if request.method == 'POST':
form = IssueForm(request.POST)
if form.is_valid():
issue = form.save(commit=False)
issue.author = request.user
issue.save()
return redirect('project:issue_tracker:issue_detail',project_id=project_id,issue_id=issue.id)
else:
form = IssueForm(initial={'project': project_id})
form.fields['project'].widget.attrs['readonly'] = True
template = 'issue_tracker/issue/new_issue.html'
context = {'form': form,'project_id':project_id}
return render(request, template, context)
form.py
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('body',)
class IssueForm(forms.ModelForm):
class Meta:
model = Issue
fields = ('title','content','project','status')
class NewIssueForm(forms.ModelForm):
class Meta:
model = Issue
fields = ('title','content','project','status')
new_issue.html
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<h1>Add New Issue </h1>
<form method="POST" class="Issue-form">{% csrf_token %}
{{form|crispy}}
<button type="submit" class="btn btn-success">Submit</button>
</form>
{% endblock %}
【问题讨论】:
-
你使用 Django-1.9 或更高版本吗?