21 Aralık 2010, Salı
django sınıf tabanlı bir satır ile model-form görünümleri veya formset
Aşağıdaki modeller var:
class Bill(models.Model):
date = models.DateTimeField(_("Date of bill"),null=True,blank=True)
class Item(models.Model):
name = models.CharField(_("Name"),max_length=100)
price = models.FloatField(_("Price"))
quantity = models.IntegerField(_("Quantity"))
bill = models.ForeignKey("Bill",verbose_name=_("Bill"),
related_name="billitem")
Bunun mümkün olduğunu biliyorum
from django.forms.models import inlineformset_factory
inlineformset_factory(Bill, Item)
ve sonra standart görünümü sayesinde bu işlem.
Şimdi ise aynı (anlamı: eklemek için bir satır içi öğeleri bir bill ait düzenleme) kullanarak elde etmek için bir yol olup olmadığını merak ediyordumsınıf manzarasına göre(admin-arabirim için değil).
CEVAP
25 Temmuz 2011, PAZARTESİ
Önemli noktalar:
forms.py
FormSet
sinlineformset_factory
kullanarak oluşturulan:BookImageFormSet = inlineformset_factory(BookForm, BookImage, extra=2) BookPageFormSet = inlineformset_factory(BookForm, BookPage, extra=5)
views.py
12 *sınıf içindeFormSet
s döndü:def get_context_data(self, **kwargs): context = super(BookCreateView, self).get_context_data(**kwargs) if self.request.POST: context['bookimage_form'] = BookImageFormSet(self.request.POST) context['bookpage_form'] = BookPageFormSet(self.request.POST) else: context['bookimage_form'] = BookImageFormSet() context['bookpage_form'] = BookPageFormSet() return context
form_valid
form ve formset kaydetmek için kullanılır:def form_valid(self, form): context = self.get_context_data() bookimage_form = context['bookimage_formset'] bookpage_form = context['bookpage_formset'] if bookimage_form.is_valid() and bookpage_form.is_valid(): self.object = form.save() bookimage_form.instance = self.object bookimage_form.save() bookpage_form.instance = self.object bookpage_form.save() return HttpResponseRedirect('thanks/') else: return self.render_to_response(self.get_context_data(form=form))
Bunu Paylaş:
Ajax ile dinamik bir şekilde Django iç...
Django üzerinde permission_required de...
Django: bir nesne DB form veya 'H...
Otomatik oluşturma django model form n...
Form tabanlı kimlik doğrulaması için k...