2011-10-11 63 views
1

出於某種原因,我的表單中的排除不起作用,我的Item模型的主鍵顯示在我的Formset上。我怎樣才能擺脫它?django formset初始數據顯示ID(主鍵)

形式:

41 class ItemForm(forms.ModelForm): 
53 
54  class Meta: 
55   model = Item 
56   fields = ('name', 
58     'description', 
59     'quantity', 
60     'start', 
61     'end', 
62     'cost_price', 
63     'selling_price',) 
64   widgets = {'cost_price': forms.TextInput(attrs={'onChange':'updateSellingPrice()'}), 
65     'description': forms.Textarea, 
66     'start': SelectDateWidget, 
67     'end': SelectDateWidget} 
68   exclude = ('id') 
69 
70 ItemFormSet = modelformset_factory(Item, form=ItemForm, max_num=5, extra=3, exclude=('id')) 

查看:

59 def item_details(request, event_slug, role_id, module_slug): 
60  event = get_object_or_404(Event, slug=event_slug) 
61  payment_details = EventPaymentDetail.objects.get_or_create(event=event)[0] 
62  try: 
63   item_details = Item.objects.filter(event=event) 
65  except: 
66   item_details = Item.objects.get_or_create(event=event)[0] 
68 
69  if request.method == 'POST': 
70   item_formset = ItemFormSet(request.POST) 
71 
72   #display_error(request, item_formset) 
73   if item_formset.is_valid(): 
74    instances = item_formset.save(commit=False) 
75    for instance in instances: 
76     instance.event = event 
77     instance.save() 
93    messages.success(request, 'Item details successfully saved!') 
94    url = reverse('event_admin_dashboard', args=[event_slug, role_id]) 
95    return redirect(url) 
96 
97  else: 
98   item_formset = ItemFormSet() 
99  currency_type = payment_details.currency 
100  template = 'registration/item_details.html' 
101  return render(request, template, locals()) 

回答

1

我不相信這是可以排除的id字段。恐怕我不能給你一個解釋或鏈接到文檔。

旁白:

這不是這裏的問題,但是你錯過了你的exclude元組逗號。這不是這裏的問題,但它意味着Django的將其解釋爲

exclude = ('i', 'd') 

它應該是:

exclude = ('id',) 
+0

啊,是的,但由於某些原因,沒有工作。 – super9

+0

找到答案!在模板中,我可以檢查field.is_hidden以播放我的內容塊 – super9

+1

很高興您將它分類!您可以將您的評論重寫爲答案,以便其他人更容易找到答案。 – Alasdair