Vì vậy, tôi có mô hình TagStatus của mình. Tôi đang cố tạo một ModelForm cho nó. Tuy nhiên, biểu mẫu của tôi yêu cầu đầu vào bị ẩn phải được điền bằng {{tag.name}}. Tôi đã xem qua các tài liệu và tôi không biết cách làm cho trường thẻ là một đầu vào bị ẩn. Có lẽ một ModelForm không phải là con đường để đi?Django ModelForm để có một đầu vào ẩn
models.py:
class TagStatus(models.Model):
user = models.ForeignKey(User, null=True, unique=True)
status = models.CharField(max_length=2, choices=tag_statuses)
tag = models.ForeignKey(Tag, null=True, blank=True)
def __unicode__(self):
return self.status
def save(self, *args, **kwargs):
super(TagStatus, self).save(*args, **kwargs)
class TagStatusForm(modelForm):
class Meta:
model = TagStatus
fields = ('status','tag')
widgets = {
'select': Select,
'tag': ???
}
django views.py:
@login_required
def tags(request):
all_tags = Tag.objects.all()
context = base_context(request)
if request.method == 'POST':
if 'status_check' in request.POST:
status_form = TagStatusForm(request.POST)
#if request.is_ajax():
if status_form.is_valid():
status_form.save()
response = simplejson.dumps({"status": "Successfully changed status"})
else:
response = simplejson.dumps({"status": "Error"})
return HttpResponse (response, mimetype='application/json')
status_form = TagStatusForm()
context['status_form'] = status_form
context['all_tags'] = all_tags
return render_to_response('tags/tags.html', context, context_instance=RequestContext(request))
mẫu:
{% for tag in all_tags %}
....
<form class="nice" id="status-form" method="POST" action="">
{% csrf_token %}
<input type="hidden" name="status_check" />
<input type='hidden' name="tag" value="{{ tag.name }}" />
{{ status_form.status }}
</form>
...
{% endfor %}
Làm thế nào tôi sẽ đi về làm cho một đầu vào ẩn qua một Django ModelForm một d sau đó điền nó thông qua mẫu?
Có gì sai với những gì bạn có? –