努力在DetailView页面中显示复选框数据

时间:2019-04-15 04:40:52

标签: django django-class-based-views

我有一个表格,提交时需要显示我在表格中提交的详细信息。 我真的很难理解如何显示复选框数据。

我查看了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!']}>

有人可以指出我做错了什么吗?

1 个答案:

答案 0 :(得分:0)

在通过数以百万计的Google链接进行耕作后,我发现了这一点:

http://www.joshuakehn.com/2013/6/23/django-m2m-modelform.html

我试图删除:

Commit=False 

来自:

post = form.save()

在forms.py文件中,现在可以使用。我在此上浪费了很多时间,因此希望对其他人有帮助。