我有一个表格,提交时需要显示我在表格中提交的详细信息。 我真的很难理解如何显示复选框数据。
我查看了DetailForms上的django文档,但这并没有真正帮助我如何显示ManyToManyFields。
我的模板如下:
[5] pry(#<UsersSetting>)> self.update_attributes!({:value => options.inspect})
(5.0ms) BEGIN
(5.0ms) BEGIN
(4.8ms) ROLLBACK
(4.8ms) ROLLBACK
ActiveRecord::RecordInvalid: Validation failed: Key can't be blank
from /Users/justinhung/.rvm/gems/ruby-2.1.10/gems/activerecord-4.0.0/lib/active_record/validations.rb:57:in `save!'
[6] pry(#<UsersSetting>)> options
=> {:status=>"-1", :client_id=>"-100"}
[7] pry(#<UsersSetting>)> :value
=> :value
[8] pry(#<UsersSetting>)> value
=> "{:status=>\"-1\", :client_id=>\"-100\"}"
[9] pry(#<UsersSetting>)> :value => options.inspect
SyntaxError: unexpected =>, expecting end-of-input
:value => options.inspect
^
[9] pry(#<UsersSetting>)> options.inspect
=> "{:status=>\"-1\", :client_id=>\"-100\"}"
[10] pry(#<UsersSetting>)> options
=> {:status=>"-1", :client_id=>"-100"}
我的看法如下:
<li>{{theBurger.burger}}</li>
<li>{{theBurger.bun}}</li>
{% for toppings in theBurger.toppings.all %}
<li>{{toppings}}</li>
{% empty %}
<p>No toppings!</p>
{% endfor %}
<li>{{theBurger.sauces}}</li>
{% for extras in theBurger.extras.all %}
<li>{{theBurger.extras}}</li>
{% empty%}
<p>No extras!</p>
{% endfor %}
我可以使该页面显示除通过复选框提交的信息以外的所有其他信息。正在发送的响应是:
class OrderDetailView(DetailView):
context_object_name = 'theBurger'
slug_field = 'id'
model = models.Burger
def get_context_data(self, **kwargs):
context = super(OrderDetailView, self).get_context_data(**kwargs)
context['now'] = timezone.now()
return context
最后是表格:
<QueryDict: {'csrfmiddlewaretoken':
['l6Qq7tg89cueHV2Fl6Qq7tg89cueHV2F2WrzrbJ'],
'burger': ["Aurion's Famous Beef Burger"], 'bun': ['White Bread'],
'toppings': ['15', '1
6'], 'sauces': ['Our Zesty Barbaque Sauce'], 'Submit': ['Git my food!']}>
有人可以指出我做错了什么吗?
答案 0 :(得分:0)
在通过数以百万计的Google链接进行耕作后,我发现了这一点:
http://www.joshuakehn.com/2013/6/23/django-m2m-modelform.html
我试图删除:
Commit=False
来自:
post = form.save()
在forms.py文件中,现在可以使用。我在此上浪费了很多时间,因此希望对其他人有帮助。